§2 – the Relational Model and Normalization Chapter Objectives

Total Page:16

File Type:pdf, Size:1020Kb

§2 – the Relational Model and Normalization Chapter Objectives §2 – The Relational Model and Normalization Fen Wang [email protected] Lecture 4 IT468 DB @ ITAM 1 Chapter Objectives • The foundation of the relational model • Characteristics of relations • The basic relational terminology • Primary, candidate, and composite keys • The purpose and use of surrogate keys • How foreign keys represent relationships • The meaning of functional dependencies • Possible insertion, deletion, and update anomalies • Apply a process for normalizing relations IT468 DB @ ITAM 2 1 The Relational Database Model • The dominant database model is the relational database model – all current major DBMS products are based on it • Created by IBM engineer E. F. Codd in 1970 • It was based on mathematics called relational algebra • Now the standard model for commercial DBMS products IT468 DB @ ITAM 3 Important Relational Model Terms • Entity • Relation • Functional Dependency • Determinant • Candidate Key • Composite Key • Primary Key • Surrogate Key • Foreign Key • Referential integrity constraint • Normal Form • Multivalued Dependency IT468 DB @ ITAM 4 2 Entity • An entity is something of importance to a user that needs to be represented in a database: – Customers – Computers – Sales • An entity represents one theme or topic IT468 DB @ ITAM 5 Relation • Relational DBMS products store data about entities in relations, a special type of table • A relation is a two-dimensional table that has specific characteristics • The table dimensions, like a matrix, consist of rows and columns IT468 DB @ ITAM 6 3 Characteristics of a Relation Smart tip: if a table qualifies to be a relation, it must satisfy all of the above characteristics! IT468 DB @ ITAM 7 A Sample Relation IT468 DB @ ITAM 8 4 A Relation with Values of Varying Length IT468 DB @ ITAM 9 Tables That Are Not Relations Cells of the table hold multiple values IT468 DB @ ITAM 10 5 Tables That Are Not Relations Cells of the table require a particular row order/arrangement IT468 DB @ ITAM 11 Tables That Are Not Relations No two rows may be identical EmployeeNumber Phone LastName 100 335-6421 Abernathy 101 215-7789 Cadley 104 610-9850 Copley 100 335-6421 Abernathy 107 299-9090 Jackson IT468 DB @ ITAM 12 6 Alternative Terminology • Although not all tables are relations, the terms table and relation are often used interchangeably • The following sets of terms are equivalent: 13 Line format to indicate a table structure • In addition to using graphic format to display or show a table structure, you could also utilize a line format (a.k.a. textual format) to indicate a table structure: RELATION_NAME (Column01, Column02, … LastColumn) IT468 DB @ ITAM 14 7 Keys • A key is a combination of one or more columns that is used to identify rows in a relation • A composite key is a key that consists of two or more columns IT468 DB @ ITAM 15 Uniqueness of Keys Unique Key Nonunique Key Data value is unique Data value may be for each row. shared among several Consequently, the key rows. will uniquely identify Consequently, the key a row. will identify a set of rows. 16 8 Uniqueness of Keys (cont.) • See below for a sample table using the line format: TEXTBOOK (Author, Title, ISBN, Publisher, Copyright) – Analyze each column in the table • Is it a unique or non-unique key? Copyright Publisher, Title, Author, Author, unique - non keys: keys: Possible ISBN unique keys: keys: Possible answers: Sample IT468 DB @ ITAM 17 A Candidate Key • A candidate key are keys that uniquely identify each row in a relation • A candidate key is a unique key IT468 DB @ ITAM 18 9 Primary Keys • A primary key is a candidate key selected as the primary means of identifying rows in a relation: – There is one and only one primary key per relation – The primary key may be a composite key – The ideal primary key is short, numeric and never changes EMPLOYEE(EmployeeNum,FirstName,LastName,Department,Email,Phone) 19 Primary Keys Example IT468 DB @ ITAM 20 10 Composite Primary Key Example • To identify a grade, you need to know a StudentID, CourseID, and Session (e.g., Fall 2009) • The composite key is: (StudentID, CourseID, Session) • One needs to know the value of all three columns to uniquely identify a grade IT468 DB @ ITAM 21 A Surrogate Key • A surrogate key is a unique, numeric value that is added to a relation to serve as the primary key • Surrogate key values have no meaning to users and are usually hidden on forms, queries and reports • A surrogate key is often used in place of a composite primary key IT468 DB @ ITAM 22 11 Surrogate Key Example NOTE: The primary key of the relation is underlined below: • RENTAL_PROPERTY without surrogate key: RENTAL_PROPERTY (Street, City, State/Province, Zip/PostalCode, Country, Rental_Rate) • RENTAL_PROPERTY with surrogate key: RENTAL_PROPERTY (PropertyID, Street, City, State/Province, Zip/PostalCode, Country, Rental_Rate) IT468 DB @ ITAM 23 Defining the Primary Key in Microsoft Access IT468 DB @ ITAM 24 12 Defining the Primary Key in Microsoft SQL Server IT468 DB @ ITAM 25 Defining the Primary Key in MySQL Check the PK checkbox to indicate the Primary Key IT468 DB @ ITAM 26 13 Defining the Primary Key in Oracle Make drop-down box selection to indicate the Primary Key IT468 DB @ ITAM 27 Before next class • Practice more with MS Access 2010 and MS Visio Professional • Keep working on Project D1 • Start working on Assignment#2 (due 10PM on Friday) • Read Textbook Chapter 1 – The Access WorkBench Section 1 IT468 DB @ ITAM 28 14 .
Recommended publications
  • Create Table Identity Primary Key Sql Server
    Create Table Identity Primary Key Sql Server Maurits foozle her Novokuznetsk sleeplessly, Johannine and preludial. High-principled and consonantal Keil often stroke triboluminescentsome proletarianization or spotlight nor'-east plop. or volunteer jealously. Foul-spoken Fabio always outstrips his kursaals if Davidson is There arise two ways to create tables in your Microsoft SQL database. Microsoft SQL Server has built-in an identity column fields which. An identity column contains a known numeric input for a row now the table. SOLVED Can select remove Identity from a primary case with. There cannot create table created on every case, primary key creates the server identity column if the current sql? As I today to refute these records into a U-SQL table review I am create a U-SQL database. Clustering option requires separate table created sequence generator always use sql server tables have to the key. This key creates the primary keys per the approach is. We love create Auto increment columns in oracle by using IDENTITY. PostgreSQL Identity Column PostgreSQL Tutorial. Oracle Identity Column A self-by-self Guide with Examples. Constraints that table created several keys means you can promote a primary. Not logged in Talk Contributions Create account already in. Primary keys are created, request was already creates a low due to do not complete this. IDENTITYNOT NULLPRIMARY KEY Identity Sequence. How weak I Reseed a SQL Server identity column TechRepublic. Hi You can use one query eg Hide Copy Code Create table tblEmplooyee Recordid bigint Primary key identity. SQL CREATE TABLE Statement Tutorial Republic. Hcl will assume we need be simplified to get the primary key multiple related two dissimilar objects or adding it separates structure is involved before you create identity? When the identity column is part of physician primary key SQL Server.
    [Show full text]
  • Keys Are, As Their Name Suggests, a Key Part of a Relational Database
    The key is defined as the column or attribute of the database table. For example if a table has id, name and address as the column names then each one is known as the key for that table. We can also say that the table has 3 keys as id, name and address. The keys are also used to identify each record in the database table . Primary Key:- • Every database table should have one or more columns designated as the primary key . The value this key holds should be unique for each record in the database. For example, assume we have a table called Employees (SSN- social security No) that contains personnel information for every employee in our firm. We’ need to select an appropriate primary key that would uniquely identify each employee. Primary Key • The primary key must contain unique values, must never be null and uniquely identify each record in the table. • As an example, a student id might be a primary key in a student table, a department code in a table of all departments in an organisation. Unique Key • The UNIQUE constraint uniquely identifies each record in a database table. • Allows Null value. But only one Null value. • A table can have more than one UNIQUE Key Column[s] • A table can have multiple unique keys Differences between Primary Key and Unique Key: • Primary Key 1. A primary key cannot allow null (a primary key cannot be defined on columns that allow nulls). 2. Each table can have only one primary key. • Unique Key 1. A unique key can allow null (a unique key can be defined on columns that allow nulls.) 2.
    [Show full text]
  • Rfgen Users Guide
    DataMax Software Group Inc. 1101 Investment Blvd. El Dorado Hills, CA 95762 USA RFgen Users Guide All Editions RFgen 5.2 © 2021 RFgen Software. A division of DataMAX Software Group, Inc. All Rights Reserved. RFgen 5.2 Users Guide Table of Contents Introduction to RFgen 1 Connection Tab 33 Basic Implementation Steps 2 Connection Tab - SAP 33 Configuration Overview 3 SAP Data Encryption 34 Configurations Shared by Dev Studio To Configure for JDE 35 and Services Console: 3 Adding A New Web Services Connection 40 Connections Shared by Dev Studio Configuring the Host Connection 42 and Services Console: 4 Configuring User Access Control 45 Configurations Available Only in Dev Studio 4 Adding or Removing RFgen Admin- istrators / RFgen SubAdmins 46 Connections Available Only in Dev Studio 4 Dev Studio Configuration Options 47 Configuring the RFgen Application Data- Configuring Menu and Key Settings 48 base 4 System Menu Configuration 48 Configuring Application Preferences 7 Function Key Actions 49 Configuring Application Services 10 Configuring the Scripting Environment 50 Configuring Environment Settings 14 Configuring Source Control Options 52 Configure System Environment 14 Configuring System Properties 54 Configuring Transaction Management DB Connection 19 Download Enterprise Objects 54 Create Application Event Database 19 Downloading ERP Business Functions 55 Configuring System Queues and Tasks 20 Downloading JDE Processing Options 55 Add New Enterprise Connections 22 Viewing Enterprise Objects 57 Adding a New DataSource Connection 22 Viewing
    [Show full text]
  • Normalization Exercises
    DATABASE DESIGN: NORMALIZATION NOTE & EXERCISES (Up to 3NF) Tables that contain redundant data can suffer from update anomalies, which can introduce inconsistencies into a database. The rules associated with the most commonly used normal forms, namely first (1NF), second (2NF), and third (3NF). The identification of various types of update anomalies such as insertion, deletion, and modification anomalies can be found when tables that break the rules of 1NF, 2NF, and 3NF and they are likely to contain redundant data and suffer from update anomalies. Normalization is a technique for producing a set of tables with desirable properties that support the requirements of a user or company. Major aim of relational database design is to group columns into tables to minimize data redundancy and reduce file storage space required by base tables. Take a look at the following example: StdSSN StdCity StdClass OfferNo OffTerm OffYear EnrGrade CourseNo CrsDesc S1 SEATTLE JUN O1 FALL 2006 3.5 C1 DB S1 SEATTLE JUN O2 FALL 2006 3.3 C2 VB S2 BOTHELL JUN O3 SPRING 2007 3.1 C3 OO S2 BOTHELL JUN O2 FALL 2006 3.4 C2 VB The insertion anomaly: Occurs when extra data beyond the desired data must be added to the database. For example, to insert a course (CourseNo), it is necessary to know a student (StdSSN) and offering (OfferNo) because the combination of StdSSN and OfferNo is the primary key. Remember that a row cannot exist with NULL values for part of its primary key. The update anomaly: Occurs when it is necessary to change multiple rows to modify ONLY a single fact.
    [Show full text]
  • Data Vault Data Modeling Specification V 2.0.2 Focused on the Data Model Components
    Data Vault Data Modeling Specification v2.0.2 Data Vault Data Modeling Specification v 2.0.2 Focused on the Data Model Components © Copyright Dan Linstedt, 2018 all rights reserved. Abstract New specifications for Data Vault 2.0 Methodology, Architecture, and Implementation are coming soon... For now, I've updated the modeling specification only to meet the needs of Data Vault 2.0. This document is a definitional document, and does not cover the implementation details or “how-to” best practices – for those, please refer to Data Vault Implementation Standards. Please note: ALL of these definitions are taught in our Certified Data Vault 2.0 Practitioner course. They are also defined in the book: Building a Scalable Data Warehouse with Data Vault 2.0 available on Amazon.com These standards are FREE to the general public, and these standards are up-to-date, and current. All standards published here should be considered the correct and current standards for Data Vault Data Modeling. NOTE: tooling vendors: if you *CLAIM* to support Data Vault 2.0, then you must support all standards as defined here. Otherwise, you are not allowed to claim support of Data Vault 2.0 in any way. In order to make the public statement “certified/Authorized to meet Data Vault 2.0 Standards” or “endorsed by Dan Linstedt” you must make prior arrangements directly with me. © Copyright Dan Linstedt 2018, all Rights Reserved Page 1 of 17 Data Vault Data Modeling Specification v2.0.2 Table of Contents Abstract .........................................................................................................................................1 1.0 Entity Type Definitions .............................................................................................................4 1.1 Hub Entity ......................................................................................................................................................
    [Show full text]
  • 3 Data Definition Language (DDL)
    Database Foundations 6-3 Data Definition Language (DDL) Copyright © 2015, Oracle and/or its affiliates. All rights reserved. Roadmap You are here Data Transaction Introduction to Structured Data Definition Manipulation Control Oracle Query Language Language Language (TCL) Application Language (DDL) (DML) Express (SQL) Restricting Sorting Data Joining Tables Retrieving Data Using Using ORDER Using JOIN Data Using WHERE BY SELECT DFo 6-3 Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 3 Data Definition Language (DDL) Objectives This lesson covers the following objectives: • Identify the steps needed to create database tables • Describe the purpose of the data definition language (DDL) • List the DDL operations needed to build and maintain a database's tables DFo 6-3 Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 4 Data Definition Language (DDL) Database Objects Object Description Table Is the basic unit of storage; consists of rows View Logically represents subsets of data from one or more tables Sequence Generates numeric values Index Improves the performance of some queries Synonym Gives an alternative name to an object DFo 6-3 Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 5 Data Definition Language (DDL) Naming Rules for Tables and Columns Table names and column names must: • Begin with a letter • Be 1–30 characters long • Contain only A–Z, a–z, 0–9, _, $, and # • Not duplicate the name of another object owned by the same user • Not be an Oracle server–reserved word DFo 6-3 Copyright © 2015, Oracle and/or its affiliates. All rights reserved. 6 Data Definition Language (DDL) CREATE TABLE Statement • To issue a CREATE TABLE statement, you must have: – The CREATE TABLE privilege – A storage area CREATE TABLE [schema.]table (column datatype [DEFAULT expr][, ...]); • Specify in the statement: – Table name – Column name, column data type, column size – Integrity constraints (optional) – Default values (optional) DFo 6-3 Copyright © 2015, Oracle and/or its affiliates.
    [Show full text]
  • Analysis Services Best Practices
    presented by Marco Russo [email protected] sqlbi.com sqlbi.com Who am I Latest conferences BI Expert and Consultant PASS Europe 2009 – Neuss – Germany Problem Solving Complex Project Assistance PASS 2009 – Seattle – USA DataWarehouse Assesments and Development SQL Conference 2010 – Milan – Italy Courses, Trainings and Workshops Teched 2010 – New Orleans – USA Microsoft Business Intelligence Partner Book Writer 24 Hours of PASS 2010 – Online PASS 2010 – Seattle – USA sqlbi.com Agenda DATA SOURCE (RELATIONAL MODELING) Relational Schema Decoupling Layer Dimensional Patterns Slowly Changing Dimensions Junk Dimensions Parent-Child Hierarchies Role Dimensions Drill-through Calculation Dimensions sqlbi.com sqlbi.com 1 CONFIGURATION Source OLTP DB SQLBI Methodology Relational Schema SNOWFLAKE SCHEMA Analysis Services reads data Mirror OLTP from Data Mart A Data Mart is not the Data Staging Area Warehouse ODS Data Warehouse Operational Data Store Data Marts OLAP Cubes Custom Reports Client Tools Other Systems Excel, Proclarity, … Customers Relational Schema Relational Schema STAR SCHEMA STAR VS. SNOWFLAKE SCHEMA Options for dimensions from snowflake schema: Transform into a star schema by using views Transform into a star schema by using DWV queries Join tables in SSAS dimensions Referenced Dimension Ideal solution Use SQL views to generate a star schema The star schema eliminates ambiguity Data Source Decoupling USE VIEWS TO DECOUPLE DIFFERENT LAYERS OF A BI SOLUTION DATA SOURCE (RELATIONAL MODELING) OLTP OLTP Mirror
    [Show full text]
  • Database Concepts Page 1 of 5
    Article :: Design Your Database :: Database Concepts Page 1 of 5 Home > Support > Articles > Design Your Database Adobe acquired InterAKT Database Concepts [ May 15, 2005 ] Table 1. Introduction 2. Database Concepts A table is a data grid used to store similar information. It 3. Plan Your Database is made up of columns (also known as fields), which 4. Relations Between Tables represent entity attributes or pieces of data, and rows, 5. Normalization which represent individual records. All records in a table 6. Best Practices in Database Design share the same fields. In the previous example, a TV set 7. Database Naming Convention and a T-shirt are records in the table that stores products. 8. Databases By Example The price and description of each product represent 9. Useful Resources columns in this table. Usually, databases have more tables, each corresponding to one of the objects you are trying to represent. Relation In a database, tables are usually related in a logical way. A link between two tables is called a relation. A relation always involves two tables and one column from each. Linking tables is very important for avoiding data redundancy and for better organizing your database. Suppose the TV set product mentioned earlier was manufactured by a company called ACME, and you also store a CD player produced by ACME. If there were not separate tables for products and manufacturers, you would need to store the same manufacturer twice in your database, once for each product. This not only takes up a lot of disk space, but maintaining several copies of the same data can make updates very difficult.
    [Show full text]
  • Foreign Key Primary
    The Relational Model CIS 3730 Designing and Managing Data J.G. Zheng Fall 2010 1 Overview What is the relational model? What are the most important practical elements of the relational model? 2 Introduction Edgar F. Codd (IBM), 1970 One sentence to summarize relational database model (extremely brief): Data are organized in relations (tables), which are linked by keys (constraints) 3 Relational Model in MS Access Data are organized in relations (tables), and linked by keys. 4 Relation A relation is a two-dimensional table that has some specific characteristics: 1. The table consist of rows and columns 2. Rows contain data about entity instances 3. All values in a row describes the same entity instance 4. Columns contain data about attributes of the entity 5. All values in a column are of the same kind 6. Each row is distinct 7. A cell of the table holds a single value 8. Each column has a unique name 9. The order of the rows is unimportant 10. The order of the columns is unimportant 5 Relation Example 6 Non-Relation Examples 7 Terminology Contrast Database industry Table Row Column Academic Relation Tuple Attribute File processing File Record Field 8 Key A key is one or more columns of a relation that is used to identify a record Unique keys Primary key Candidate key Alternate key Surrogate key Foreign key Composite key 9 Candidate Key/Primary Key Candidate key The minimum set of column(s) that uniquely identifies a single record (row) Each value in this column is unique in this relation Primary key Is one of the candidate keys
    [Show full text]
  • Relational Data Model and SQL Data Definition Language
    The Relational Data Model and SQL Data Definition Language Paul Fodor CSE316: Fundamentals of Software Development Stony Brook University http://www.cs.stonybrook.edu/~cse316 1 The Relational Data Model A particular way of structuring data (using relations) proposed in 1970 by E. F. Codd Mathematically based Expressions ( queries) can be analyzed by DBMS and transformed to equivalent expressions automatically (query optimization) Optimizers have limits (=> the programmer still needs to know how queries are evaluated and optimized) 2 (c) Pearson Education Inc. and Paul Fodor (CS Stony Brook) Relational Databases In Relational DBs, the data is stored in tables Attributes (column Relation name: Student headers) Id Name Address Status 1111 John 123 Main fresh Tuples 2222 Mary 321 Oak (rows) 1234 Bob 444 Pine 9999 Joan 777 Grand senior 3 (c) Pearson Education Inc. and Paul Fodor (CS Stony Brook) Table Set of rows (no duplicates) Each row/tuple describes a different entity Each column/attribute states a particular fact about each entity Each column has an associated domain Id Name Address Status 1111 John 123 Main fresh 2222 Mary 321 Oak 1234 Bob 444 Pine 9999 Joan 777 Grand senior Domain of Id: integers Domain of Name: strings 4 Domain of(c) PearsonStatus Education= Inc.{fresh, and Paul Fodor soph, (CS Stony junior,Brook) senior} Relation A relation is the mathematical entity corresponding to a table: A relation R can be thought of as predicate R A tuple (x,y,z) is in the relation R iff R(x,y,z) is true Why Relations/Tables? Very simple model.
    [Show full text]
  • Java and RDBMS Married with Issues Database Constraints Speaker
    Java and RDBMS Married with issues Database constraints Speaker Jeroen van Schagen Situation store Java Relational Application Database retrieve JDBC JDBC • Java Database Connectivity • Data Access API ( java.sql, javax.sql ) • JDK 1.1 (1997) • Relational Database • Many implementations Connection connection = …; Statement statement = connection.createStatement(); String sql = “INSERT INTO user (name) VALUES (‘Jan’)”; statement.executeUpdate(sql); Connection connection = …; Statement statement = connection.createStatement(); String sql = “INSERT INTO user (name) VALUES (‘Jan’)”; statement.executeUpdate(sql); Database Maintain data User name : varchar(3) NOT-NULL, UNIQUE Name can only have up to 3 characters Name is required Name can only occur once Constraint types Not null Check Unique key Length Type Foreign key Primary key User name : varchar(3) NOT-NULL, UNIQUE Connection connection = …; Statement statement = connection.createStatement(); String sql = “INSERT INTO user (name) VALUES (‘Jan’)”; statement.executeUpdate(sql); What happens? Assuming the user table is empty User name : varchar(3) NOT-NULL, UNIQUE Connection connection = …; Statement statement = connection.createStatement(); String sql = “INSERT INTO user (name) VALUES (‘Jan’)”; statement.executeUpdate(sql); 1 row updated User name : varchar(3) NOT-NULL, UNIQUE Connection connection = …; Statement statement = connection.createStatement(); String sql = “INSERT INTO user (name) VALUES (‘Jan’)”; statement.executeUpdate(sql); statement.executeUpdate(sql); WhatWhat will happens?
    [Show full text]
  • Dynamic Information with IBM Infosphere Data Replication CDC
    Front cover IBM® Information Management Software Smarter Business Dynamic Information with IBM InfoSphere Data Replication CDC Log-based for real-time high volume replication and scalability High throughput replication with integrity and consistency Programming-free data integration Chuck Ballard Alec Beaton Mark Ketchie Anzar Noor Frank Ketelaars Judy Parkes Deepak Rangarao Bill Shubin Wim Van Tichelen ibm.com/redbooks International Technical Support Organization Smarter Business: Dynamic Information with IBM InfoSphere Data Replication CDC March 2012 SG24-7941-00 Note: Before using this information and the product it supports, read the information in “Notices” on page ix. First Edition (March 2012) This edition applies to Version 6.5 of IBM InfoSphere Change Data Capture (product number 5724-U70). © Copyright International Business Machines Corporation 2012. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . ix Trademarks . x Preface . xi The team who wrote this book . xii Now you can become a published author, too! . xvi Comments welcome. xvii Stay connected to IBM Redbooks . xvii Chapter 1. Introduction and overview . 1 1.1 Optimized data integration . 2 1.2 InfoSphere architecture . 4 Chapter 2. InfoSphere CDC: Empowering information management. 9 2.1 The need for dynamic data . 10 2.2 Data delivery methods. 11 2.3 Providing dynamic data with InfoSphere CDC . 12 2.3.1 InfoSphere CDC architectural overview . 14 2.3.2 Reliability and integrity . 16 Chapter 3. Business use cases for InfoSphere CDC . 19 3.1 InfoSphere CDC techniques for transporting changed data .
    [Show full text]