Database Concepts and Definition of Terms

February 8, 2018 | Author: Mae Abigail Banquil | Category: Databases, Relational Database, Data Model, Data Management Software, Information Science
Share Embed Donate


Short Description

Oracle Database Modelling --Database Concepts and Definition of Terms...

Description

Database Concepts and Definition of Terms SPECIAL TRAINING

Database Concepts and Definition of Terms

SESSION OBJECTIVE This session will introduce you to the basic concepts and terminologies used in Relational Analysis and Design.

Database Concepts and Definition of Terms

What is a Database ? A shared collection of logically related data (and a description of this data) designed to meet the information needs of an organization.

Database

Database Concepts and Definition of Terms

What is a DBMS ? A database management system (DBMS) is a software system that enables users to define, create and maintain the database and which provides controlled access to this database.

Database Concepts and Definition of Terms

What is a Table ? A table is a 2-dimensional representation of data consisting of one or more columns, and zero or more rows.

Database Concepts and Definition of Terms

Example

COURSE COURSE CODE

COURSE DESCRIPTION

BSCS BSIT BSA BSC

COMPUTER SCIENCE INFORMATION TECHNOLOGY ACCOUNTANCY COMMERCE

The name of the table is COURSE. It has two columns and four rows. The column names are Course Code and Course Description.

Database Concepts and Definition of Terms

Table Naming Conventions ✔ Table names must be unique. To avoid ambiguity in specifying a table, no two tables can have the same name within a data model (database).

✔ Column names must be unique within a table Each column within a table must have a unique name. However, columns from different tables can have the same name and in fact, desirable to clearly establish relations between tables.

✔ Rows must be unique Rows, considered in their entirety, must be distinct from one another.

Database Concepts and Definition of Terms

Example

COURSE COURSE CODE

COURSE DESCRIPTION

BSCS BSIT BSA BSC

COMPUTER SCIENCE INFORMATION TECHNOLOGY ACCOUNTANCY COMMERCE

STUDENT STUDENT STUDENT NUMBER NAME

COURSE CODE YEAR TUITION

01 02 03 04

BSCS BSCS BSA BSIT

HERBERT CARMEL NICOLAI GENE

1 2 4 4

7,000.00 6,500.00 5,000.00 8,000.00

Database Concepts and Definition of Terms

Table Naming Conventions (cont.) ✔ Column and row order must be arbitrary. Although the following tables may look different, they are actually the same. The order of the columns and rows has no significance. STUDENT

STUDENT STUDENT STUDENT NUMBER NAME

COURSE CODE YEAR

COURSE CODE

STUDENT NUMBER

01 02 03 04

BSCS BSCS BSA BSIT

BSA BSIT BSCS BSCS

03 04 02 01

HERBERT CARMEL NICOLAI GENE

1 2 4 4

YEAR

STUDENT NAME

4 4 2 1

NICOLAI GENE CARMEL HERBERT

Database Concepts and Definition of Terms

Table Naming Conventions (cont.) ✔ Each cell of the table contains exactly one atomic (single) value. Since each cell should contain only one value, it is illegal to store two year levels for a single student in a single cell (year). STUDENT STUDENT STUDENT NUMBER NAME 01 02 03 04

HERBERT CARMEL NICOLAI GENE

COURSE YEAR CODE BSCS BSCS BSA BSIT

1/2 2/3 4 4

Database Concepts and Definition of Terms

Null Values

Def. A missing or unknown value of a column of a table.

Null Values Naming Conventions ✔ Nulls are not the same as blanks. A value of a null is unknown.

✔ Nulls are not the same as zeros. You cannot perform arithmetic operations on nulls.

✔ NN means no nulls allowed. Why should some columns not allow nulls? (Tuition Fees, Student Number, Subject Code, Course Code)

Database Concepts and Definition of Terms

Example on Nulls

COURSE COURSE CODE

COURSE DESCRIPTION

NN

NN

BSCS BSIT BSA

COMPUTER SCIENCE INFORMATION TECHNOLOGY ACCOUNTANCY

STUDENT STUDENT STUDENT NUMBER NAME NN

NN

01 02 03

HERBERT CARMEL NICOLAI

COURSE CODE YEAR TUITION BSCS BSCS

1 2 4

7,000.00 5,000.00

Database Concepts and Definition of Terms

Duplicate Values When a value in a column matches exactly another value in the same column, it is called a duplicate value. ✔ ND means no duplicates allowed. Duplicate rows are not allowed. However, duplicate values in particular columns of a table are not at all uncommon. By placing ND below a column heading, it will prohibit duplicate values in that column. To prevent duplicate values in groups of columns, suffix ND with a number, e.g. ND1, ND2, ND3, etc.

Database Concepts and Definition of Terms

Example on Duplicate Values

COURSE COURSE CODE

COURSE DESCRIPTION

NN, ND

NN, ND

BSCS BSIT BSA

COMPUTER SCIENCE INFORMATION TECHNOLOGY ACCOUNTANCY

STUDENT STUDENT STUDENT NUMBER NAME

COURSE CODE YEAR TUITION

NN, ND

NN, ND1

ND1

01 02 03

HERBERT CARMEL NICOLAI

BSCS BSCS

1 2 4

7,000.00 5,000.00

Database Concepts and Definition of Terms

Changeable Values A value in a table that may vary over time is called a changeable value. ✔ NC means no changes allowed. Can student numbers in a table be changed? Place NC below the column heading to prevent changes on the values in that column.

Database Concepts and Definition of Terms

Example on Changeable Values

COURSE COURSE CODE

COURSE DESCRIPTION

NN,ND,NC

NN, ND

BSCS BSIT BSA

COMPUTER SCIENCE INFORMATION TECHNOLOGY ACCOUNTANCY

STUDENT STUDENT NUMBER

STUDENT NAME

COURSE CODE YEAR TUITION

NN,ND,NC

NN, ND1

ND1

01 02 03

HERBERT CARMEL NICOLAI

BSCS BSCS

1 2 4

7,000.00 5,000.00

Database Concepts and Definition of Terms Primary Keys The column or group of columns whose values uniquely identify each row of that table is called the primary key.

Primary Key Values Naming Conventions ✔ Every table must have a primary key. ✔ Every table must have only one primary key. ✔ PK means primary key. Place PK below the heading of one or more columns which will serve as the primary key.

Database Concepts and Definition of Terms

Constraints on Primary Keys ✔ Primary key values must never be null. PK implies NN (Entity Integrity)

✔ Primary key values must never be duplicated. PK implies ND

✔ Primary key values must never be changed. PK implies NC

✔ Primary keys do not influence column order. ✔ Primary keys do not influence row order. ✔ Primary keys do not influence row access.

Database Concepts and Definition of Terms Other Primary Keys Notations ✔ SA means system-assigned Mark a column with SA, in addition to PK if the values are automatically generated by the system.

✔ UA means user-assigned Mark a column with UA, in addition to PK, if the values of the primary key are assigned by the user. COURSE COURSE CODE

COURSE DESCRIPTION

PK, UA

NN, ND

BSCS BSIT BSA

COMPUTER SCIENCE INFORMATION TECHNOLOGY ACCOUNTANCY

Database Concepts and Definition of Terms Foreign Keys A column or group of columns that is a primary key elsewhere is called a foreign key.

Foreign Key Rules and Constraints ✔ FK mean foreign key Multi-column foreign keys can be numbered, e.g. FK1, FK2, etc.

✔ ✔

Foreign key values might be null. Foreign key columns can contain duplicate values.

Database Concepts and Definition of Terms Foreign Key Rules and Constraints (cont.) ✔ FK values must refer to existing PK values (Referential Integrity) COURSE

STUDENT

COURSE CODE

COURSE DESCRIPTION

STUDENT NUMBER

STUDENT NAME

COURSE CODE YEAR TUITION

PK,UA

NN, ND

PK,SA

NN, ND1

FK,ND1

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

01 02 03 04

HERBERT CARMEL NICOLAI LOUIE

BSCS BSA AB

1 2 4 3

7,000.00 5,000.00

Database Concepts and Definition of Terms

Derivative Data Data that is calculated from data defined elsewhere in a model is called derivative data. ✔ DD means derivative data. ✔ DD is redundant data. Derivative data should only be included in a model when severe performance problems dictate its necessity.

Database Concepts and Definition of Terms

Derivative Data Example COURSE COURSE CODE

COURSE DESCRIPTION

STUDENT COUNT

PK,UA

NN, ND

DD

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

1 21 0

The Student Count column of the Course table is a derived data; the values in this column are calculated from the information resident in the Student table.

Basic Relational Analysis SPECIAL TRAINING

Basic Relational Analysis

SESSION OBJECTIVE This session will introduce you to the steps, procedures and rules used in basic relational analysis and design.

Basic Relational Analysis

What is an Entity ? An entity is a distinct object (a person, place or thing, concept or event) in the organization that is to be represented in the database.

Basic Relational Analysis

Steps in Modeling Entities ✔ DISCOVER AN ENTITY ➣ Ask: What person, place or thing do you want to keep track of?

➣ Concentrate on nouns More often, entities are obvious physical objects. Sometimes, they are nothing more than a concept or idea.

➣ Beware of attributes in disguise Entities stand on their own; attributes have meaning only in the context of the entities which they describe. Entities have attributes; attributes have no characteristics they can call their own.

Basic Relational Analysis ✔ DEFINE THE SCOPE OF THE ENTITY ➣ Verify user interest Users often mention entities that are not really within the scope of a model. They may be interested in a particular entity, but not enough to warrant keeping track of it. In which case, exclude it from the model.

➣ Concentrate on types not occurrences Student instead of Carmel or Herbert.

➣ Establish the appropriate level of detail When a user says Part, he may refer to the kinds of part (e.g. hard disk, video card, etc.) rather than a specific part identified by Serial No. 1234. In this case, you may want to use Part Kind instead of Part as the entity name.

Basic Relational Analysis ✔ DETERMINE THE PRIMARY KEY ➣ Ask: What uniquely identifies the entity from another?

➣ Check for nulls Make sure that the potential primary key is never null.

➣ Check for duplicates Make sure that the proposed primary key is always unique.

➣ Check for changes The proposed primary key values must never be changed.

➣ System-assign if necessary The proposed primary key values should preferably be systemassigned. If no key exists, assign a code or number column as the primary key of the entity.

Basic Relational Analysis ✔ DOCUMENT THE ENTITY IN TABLE FORM Draw the table and assign: entity name, column/primary keys, PK/SA or UA, sample data or occurrences.

COURSE

Entity names

STUDENT

COURSE NUMBER

Primary key names

STUDENT NUMBER

PK, UA BSCS BSIT BSA

PK and SA or UA Sample occurrences

PK, SA 01 02 03

Basic Relational Analysis Example: Modeling Entities “Well, Ma and I and the other three-hundred employees have been running this here little health food store just fine without a computer, but we reckon we’d better keep up with the times if we’re gonna keep up with the Joneses, know what I mean? I’m sure you do. Yes, you can assign Employee Numbers if you’d like to… Anyway, we need to keep track of all these different kinds of items - wheat germ, Vitamin E, chocolate covered granola - that’s a big seller. You better give ‘em all numbers, ‘cause we’ve got more kinds of items than you can shake a stick at. And we need to know which items are sold in which stores, and which aren’t. Be nice to know how many each store’s got on hand, too. Excuse me? No, we don’t have numbers for the stores, but if you want to give ‘em some, its OK with Ma and me.. Did ya know we have stores in three different cities now? Youbetcha. And we’re thinking of branching out to other key cities before too long.”

Basic Relational Analysis Example: Modeling Entities EMPLOYEE

STORE

ITEM

CITY

EMPLOYEE NUMBER

STORE CODE

ITEM CODE

CITY CODE

PK, SA

PK, SA

PK, UA

PK, UA

1 2 3

1 2 3

456DFG1 264SG45 3FGH4D

CBU MLA DVO

Basic Relational Analysis Example: Modeling Entities “It seems we’ve got more employees out in the field than ever before. Almost 200 in area N, the north area, and nearly 100 in the south - area S. The eastern area, E, is still the largest though. It’s alright with us if you want to number the employees. Good thing our customer base is growing as well. Fourteen new customers in the western area alone. You want to number the customers too? Well, why not? I understand the boss has come up with a classification scheme to keep track of what kind of customers are out there, and what kind of experience we employees have - Class Codes, I think he calls them. Things like B for Banks, G for government agencies, H for hospitals, and so on…”

Basic Relational Analysis Example: Modeling Entities EMPLOYEE

AREA

CUSTOMER

CLASS

EMPLOYEE NUMBER

AREA CODE

CUSTOMER CODE

CLASS CODE

PK, SA

PK, UA

PK, UA

PK, UA

1 2 3

S W E

C451 C342 C343

B G H

Workshop: Modeling Entities SPECIAL TRAINING

Relational Analysis: Modeling Relations

What is a Relation ? A mode of being, an association, an action or an event that connects two or more entities together is called a relation.

Relational Analysis: Modeling Relations

Types of Relations ✔ One-to-One Relations ➣ Each occurrence of one entity can be related to zero or one, but no more than one occurrence of another entity.

✔ One-to-Many Relations ➣ Each occurrence of one entity, say X, can be related to zero, one or more occurrences of another entity, say Y; but Y can be related to zero or one, but no more than one occurrence of X.

✔ Many-to-Many Relations ➣ Each occurrence of one entity, say X, can be related to zero, one or more occurrences of another entity, say Y and vice-versa.

Relational Analysis: Modeling Relations

Steps in Modeling Relations ✔ DISCOVER A RELATION ➣ Ask: Is there a relation between this entity and that entity?

➣ Focus on one relation at a time If a relation exists, document that relation in table form before proceeding to the next.

➣ Exhaust all possible relations For every entity identified, check if ti has a relation with all other entities defined.

Relational Analysis: Modeling Relations ✔ DEFINE THE SCOPE OF THE RELATION ➣ Verify user interest Relations may exist that are of no use or interest to the user. EXCLUDE IT FROM THE MODEL.

➣ Concentrate on direct relations Some relations can be derived (indirectly) from other relations. EXCLUDE IT FROM THE MODEL.

Relational Analysis: Modeling Relations ✔ DETERMINE THE TYPE OF RELATION ➣ ASK 2 Questions: Can entity A be related to more than one entity B? Can entity B be related to more than one entity A?

➣ Interpret the answers  2 No answers - one-to-one relation  1 Yes / 1 No answer - one-to-many relation  2 Yes answers - many-to-many relation

Relational Analysis: Modeling Relations ✔ DOCUMENT THE RELATION IN TABLE FORM ➣ One-to-one relation Place the foreign key, no duplicates allowed (FK,ND) into the smaller table.

➣ One-to-many relation Place the foreign key, allowing duplicates (FK) into the table on the YES side of the relation.

➣ Many-to-many relation Draw a new table with a multi-column primary key consisting of two single-column foreign key.

Relational Analysis: Modeling Relations

One-to-one Situation In a taxi-service company, each driver is assigned to one and only one unit. On the other hand, each unit is also assigned to one and only one driver. DRIVER Driver Number PK,UA D1 D2 D3

UNIT Unit Number PK,UA T201 T202

Driver Number FK,ND D1 D3

The relation is placed on the unit side since there are fewer units than drivers.

Relational Analysis: Modeling Relations

One-to-many Situation A student is allowed to take only one course. However, there could be more than one student enrolled in each of the courses. COURSE Course Number PK,UA BSIT BSCS BSA

STUDENT Student Number PK,UA S01 S02 S03

Course Number FK, NN BSIT BSIT BSCS

The relation is placed on the student entity being in the YES side of the relation.

Relational Analysis: Modeling Relations

Many-to-many Situation STUDENT Student Number PK,UA S01 S02 S03

SUBJECT Subject Code PK,UA CS11 CS12 CS13

STUDENT/SUBJECT Subject Student Code Number PK,FK PK,FK CS11 S01 CS12 S01 CS11 S02 A new table is created to implement the many-to-many relation.

CITY ITEM STORE

-

-

STORE

ITEM

STAFF

CITY

Using the Relations Matrix

STAFF

Relational Analysis: Modeling Relations

1:M 1:1 M:M

Workshop: Modeling Relations SPECIAL TRAINING

Relational Analysis: Modeling Attributes

What is an Attribute ? A qualifier of an entity or a relation describing its character, quantity, degree or extent is called an attribute.

Relational Analysis: Modeling Attributes

Steps in Modeling Attributes ✔ DISCOVER AN ATTRIBUTE ➣ Ask: What other characteristics of [entity or relation] are you interested in?

➣ Focus on one attribute at a time If an attribute exists, model it in table form before proceeding to the next attribute.

Relational Analysis: Modeling Attributes

Steps in Modeling Attributes ✔ DEFINE THE SCOPE OF THE ATTRIBUTE ➣ Verify user interest Some attributes are obvious, reasonable, and easy to represent in table form; but they are of no use or interest to the user. EXCLUDE THEM FROM THE MODEL.

➣ Concentrate on real attributes Check whether the proposed attribute already exists (perhaps in other form) or can be derived from other attributes in the model.

Relational Analysis: Modeling Attributes

Steps in Modeling Attributes ✔ DEFINE THE KEY OF THE ATTRIBUTE This steps determines where in a model an attribute is to be placed.

The Prepositional Phrase Method ➣ Explicit Prepositional Phrase The user explicitly says it. Example: the name of each student.

➣ Implicit Prepositional Phrase The user did not say it; but it is implied. Example: the course of each student.

Relational Analysis: Modeling Attributes

Steps in Modeling Attributes ✔ DEFINE THE KEY OF THE ATTRIBUTE ➣ Possessives Shorthand for prepositional phrases. Example: the student’s birthday.

➣ The Normalization Process Invented by Dr. Edgar F. Codd, the father of relational database.

➣ The Intuitive Approach The key of any given attribute is very obvious.

Relational Analysis: Modeling Attributes

Steps in Modeling Attributes ✔ DOCUMENT THE ATTRIBUTE IN TABLE FORM ➣ Ask about nulls If a value is required at all times, mark the column NN.

➣ Ask about duplicates If all the values in the column must always be unique, mark the column ND.

➣ Minimize derivative data If the values in the column can always be derived from data elsewhere in the model, mark the column DD.

Workshop: Modeling Attributes SPECIAL TRAINING

Normalization Process SPECIAL TRAINING

Database Concepts and Definition of Terms

SESSION OBJECTIVE This session will introduce you to the the process of normalization. It will present the purpose of normalization and will teach you how to define normal forms for tables and how to undertake the normalization process.

The Process of Normalization: Redundancy and Update Anomalies COURSE

STUDENT

COURSE CODE

COURSE DESCRIPTION

STUDENT NUMBER

STUDENT NAME

COURSE CODE YEAR TUITION

PK, UA

NN, ND

PK, SA

NN, ND1

FK,ND1

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

01 02 03

HERBERT CARMEL NICOLAI

BSCS BSCS BSA

1 2 4

7,000.00 5,000.00

STUDENT_COURSE STUDENT NUMBER

STUDENT NAME

PK, SA

NN

01 02 03

HERBERT CARMEL NICOLAI

YEAR NN 1 2 4

COURSE CODE

COURSE DESCRIPTION

NN

NN

NN

7,000.00

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

TUITION

5,000.00

Normalization / Update Anomalies: Insertion Anomalies STUDENT_COURSE STUDENT NUMBER

STUDENT NAME

PK, SA

NN, ND1

01 02 03

HERBERT CARMEL NICOLAI

YEAR

1 2 4

TUITION

7,000.00 5,000.00

COURSE CODE

COURSE DESCRIPTION

NN,ND,NC

NN, ND

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

To insert the details of new students in Student_Course table, we must include the details of the courses at which the students are enrolled. For example, to insert the details of new BSIT student, we must enter the correct details of the BSIT course so that the course details are consistent with values for BSIT in other rows of the Student_Course table.

Normalization / Update Anomalies: Insertion Anomalies STUDENT_COURSE STUDENT NUMBER

STUDENT NAME

PK, SA

NN, ND1

01 02 03

HERBERT CARMEL NICOLAI

YEAR

1 2 4

TUITION

7,000.00 5,000.00

COURSE CODE

COURSE DESCRIPTION

NN,ND,NC

NN, ND

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

To insert the details of a new course that currently has no enrolled students into the Student_Course table, it is necessary to enter nulls into the attributes for students such as Student Number. However, the Student Number is the primary key for the Student_Course table, attempting to enter nulls for Student Number violates entity integrity.

Normalization / Update Anomalies: Deletion Anomalies STUDENT_COURSE STUDENT NUMBER

STUDENT NAME

PK, SA

NN, ND1

01 02 03

HERBERT CARMEL NICOLAI

YEAR

1 2 4

TUITION

7,000.00 5,000.00

COURSE CODE

COURSE DESCRIPTION

NN,ND,NC

NN, ND

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

If we delete a student row from the Student_Course table that represents that last student enrolled in a particular course, the information about that course is also lost from the database. For example, if we delete the row for student number 02 (Carmel), the information relating to BSIT course is lost from the database.

Normalization / Update Anomalies: Modification Anomalies STUDENT_COURSE STUDENT NUMBER

STUDENT NAME

PK, SA

NN, ND1

01 02 03

HERBERT CARMEL NICOLAI

YEAR

1 2 4

TUITION

7,000.00 5,000.00

COURSE CODE

COURSE DESCRIPTION

NN,ND,NC

NN, ND

BSCS BSIT BSA

COMPUTER SCIENCE INFO. TECHNOLOGY ACCOUNTANCY

If we want to change the value of one of the attributes of a particular course, for example the course description for BSIT, we must update the rows of all students enrolled in BSIT. If this modification is not carried our on all the appropriate rows of the Student_Course table, the database will become inconsistent.

Sample Case: Process of Normalization Enrolment Form ( unnormalized form] Student Number Date Family Name Given Name Maternal Name Gender Course Year Major Term

School Year Subject Code Course Number Course Description Units Time Days Room

Repeating Groups

Normalization: First Normal Form (1NF) Conversion • Remove repeating groups of attributes and split into 2 or more tables • Underline key attributes that uniquely identify the rows in each new table. STUDENT TABLE Student Number Date Family Name Given Name Maternal Name Gender Course Year Major Term School Year

LOAD TABLE Student Number Subject Code Course Number Course Description Units Time Days Room

Normalization: Second Normal Form (2NF) Conversion • Isolate any attributes not dependent on the table’s concatenated (composite) primary key. STUDENT TABLE Student Number Date Family Name Given Name Maternal Name Gender Course Year Major Term School Year

LOAD TABLE Student Number Subject Code Course Number Course Description Units Time Days Room

LOAD TABLE Student Number Subject Code SUBJECT TABLE Subject Code Course Number Course Description Units Time Days Room

Normalization: Third Normal Form (3NF) Conversion • Remove attributes dependent on data item(s) other than the primary key. SUBJECT TABLE Subject Code Course Number Course Description Units Time Days Room

SUBJECT TABLE Subject Code Course Number Time Days Room

COURSE TABLE Course Number Course Description Units

Normalization: The Set of Third Normal Entities STUDENT (Student Number, Date, Family Name, Given Name, Maternal Name, Gender, Course, Year, Major, Term, School Year) LOAD (Student Number, Subject Code) SUBJECT (Subject Code, Course Number, Time, Days, Room) COURSE (Course Number, Course Description, Units)

Workshop: Normalization Process

SPECIAL TRAINING

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF