Requirement Analysis & Conceptual Database Design. Problem analysis Entity Relationship notation Integrity constraints Generalization



Similar documents
2 Conceptual Database Design 2.1 Requirement analysis 2.2 Modeling languages. Terminology. Requirements: Case study. Requirements

Logical Schema Design: The Relational Data Model

Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model

THE ENTITY- RELATIONSHIP (ER) MODEL CHAPTER 7 (6/E) CHAPTER 3 (5/E)

CSC 742 Database Management Systems

2. Conceptual Modeling using the Entity-Relationship Model

Chapter 3. Data Modeling Using the Entity-Relationship (ER) Model

Chapter 2: Entity-Relationship Model. Entity Sets. " Example: specific person, company, event, plant

Lecture 12: Entity Relationship Modelling

Databases Model the Real World. The Entity- Relationship Model. Conceptual Design. Steps in Database Design. ER Model Basics. ER Model Basics (Contd.

COMP 378 Database Systems Notes for Chapter 7 of Database System Concepts Database Design and the Entity-Relationship Model

Chapter 2: Entity-Relationship Model. E-R R Diagrams

Entity-Relationship Model

Databases and BigData

The Entity-Relationship Model

Data Analysis 1. SET08104 Database Systems. Napier University

Relational Database Basics Review

Data Modeling Basics

Unit 2.1. Data Analysis 1 - V Data Analysis 1. Dr Gordon Russell, Napier University

IV. The (Extended) Entity-Relationship Model

Conceptual Design Using the Entity-Relationship (ER) Model

DATABASE DESIGN. - Developing database and information systems is performed using a development lifecycle, which consists of a series of steps.

Outline. Data Modeling. Conceptual Design. ER Model Basics: Entities. ER Model Basics: Relationships. Ternary Relationships. Yanlei Diao UMass Amherst

Database Design Methodology

not necessarily strictly sequential feedback loops exist, i.e. may need to revisit earlier stages during a later stage

Database Design Process

XV. The Entity-Relationship Model

Database Design Process

Relational Database Concepts

7.1 The Information system

The Entity-Relationship Model

Data Modeling with Entity-Relationship Diagrams

The Entity-Relationship Model

Lecture 6. SQL, Logical DB Design

Data Modeling. Database Systems: The Complete Book Ch ,

Implementing evolution: Database migration

CS 4604: Introduc0on to Database Management Systems. B. Aditya Prakash Lecture #5: En-ty/Rela-onal Models- - - Part 1

Foundations of Information Management

IT2305 Database Systems I (Compulsory)

Entity Relationship Diagram

Database Design. Marta Jakubowska-Sobczak IT/ADC based on slides prepared by Paula Figueiredo, IT/DB

Lesson 8: Introduction to Databases E-R Data Modeling

IT2304: Database Systems 1 (DBS 1)

Entity - Relationship Modelling

2. Basic Relational Data Model

Database Design. Adrienne Watt. Port Moody

Designing Databases. Introduction

Database Design Overview. Conceptual Design ER Model. Entities and Entity Sets. Entity Set Representation. Keys

Conceptual Design: Entity Relationship Models. Objectives. Overview

Doing database design with MySQL

Foundations of Information Management

LiTH, Tekniska högskolan vid Linköpings universitet 1(7) IDA, Institutionen för datavetenskap Juha Takkinen

Modern Databases. Database Systems Lecture 18 Natasha Alechina

Bridge from Entity Relationship modeling to creating SQL databases, tables, & relations

A brief overview of developing a conceptual data model as the first step in creating a relational database.

Database Fundamentals: 1

Relational Schema Design

ACSG 552 Assignment #1 Spring 2009 Diana Oboikovitz. Due in class on Thursday, Jan. 22:

The Relational Model. Why Study the Relational Model? Relational Database: Definitions

Exercise 1: Relational Model

Chapter 2: Entity-Relationship Model

ECS 165A: Introduction to Database Systems

The Relational Model. Ramakrishnan&Gehrke, Chapter 3 CS4320 1

A Short Tutorial on Using Visio 2010 for Entity-Relationship Diagrams

SQL DDL. DBS Database Systems Designing Relational Databases. Inclusion Constraints. Key Constraints

CMU - SCS / Database Applications Spring 2013, C. Faloutsos Homework 1: E.R. + Formal Q.L. Deadline: 1:30pm on Tuesday, 2/5/2013

The Relational Model. Why Study the Relational Model? Relational Database: Definitions. Chapter 3

SAMPLE FINAL EXAMINATION SPRING SESSION 2015

Enhanced-ER Data Model

Database Management Systems

Generating Enterprise Applications from Models

Modern Systems Analysis and Design

Lecture Notes INFORMATION RESOURCES

Principles of of Database Design

Database Design Methodologies

Business Database Systems

Data Modelling and E-R Diagrams

DATABASE INTRODUCTION

How To Create A Table In Sql (Ahem)

The Information System Lifecircle

Review Entity-Relationship Diagrams and the Relational Model. Data Models. Review. Why Study the Relational Model? Steps in Database Design

Entity/Relationship Modelling. Database Systems Lecture 4 Natasha Alechina

DISCLAIMER OVERVIEW WHY DO WE MODEL WHAT IS QUALITY? Jeff Jacobs,

There are five fields or columns, with names and types as shown above.

Database Systems. Session 3 Main Theme. Enterprise Data Modeling Using The Entity/Relationship (ER) Model. Dr. Jean-Claude Franchitti

Once the schema has been designed, it can be implemented in the RDBMS.

Physical Design. Meeting the needs of the users is the gold standard against which we measure our success in creating a database.

Designing a Database Schema

Introduction to ERD modelling using UML Class diagrams with Magicdraw (ver 17)

DATABASES AND DATABASE USERS

Lecture 1. Basic Concepts of Set Theory, Functions and Relations

BİL 354 Veritabanı Sistemleri. Entity-Relationship Model

CIS 631 Database Management Systems Sample Final Exam


Chapter 1: Introduction. Database Management System (DBMS) University Database Example

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Fundamentals of Database Design

An Example: Video Rental System

Database Design Process. Databases - Entity-Relationship Modelling. Requirements Analysis. Database Design

CA ERwin Data Modeler. ODBC Reporting Guide

Transcription:

Requirement Analysis & Conceptual Database Design Problem analysis Entity Relationship notation Integrity constraints Generalization

Introduction: Lifecycle Requirement analysis -> Text Conceptual Design -> ER-Model Name SID Email Name KID Dauer Name DID VName VName Studentin Dozentin (1,*) (1,*) anmelden halten (0,*) (1,1) Kurs (0,*) (0,*) Vorgänger Nachfolger Email voraussetzen Logical Schema Design -> Database schema CREATE TABLE Studentin (SID INTEGER PRIMARY KEY, VName CHAR(20) Name CHAR(30) NOT NULL, CREATE TABLE Kurs Email Char(40)); (KID CHAR(10) PRIMARY KEY, Name CHAR(40) NOT NULL, Dauer INTEGER); CREATE TABLE Anmelden (SID INTEGER PRIMARY KEY FOREIGN KEY REFERENCES Studentin (SID), KID INTEGER PRIMARY KEY FOREIGN KEY REFERENCES Studentin (KID)); Physical Schema Design -> Access paths Administration 1.2

Introduction: Database Design Terminology Different from Software Engineering! Database Design process of defining the structure of a database layers of abstraction: Conceptual, logical, physical level Includes "Analysis" and "Design" from SE Database Requirements Conceptual modeling Logical modeling Physical modeling Software Engineering Requirements Analysis Design 1.3

Requirement Analysis Customer communication! Identify essential "real world" information Remove redundant, unimportant details Clarify unclear natural language statements Fill remaining gaps in discussions Distinguish data and operations Requirement analysis & Conceptual Design aims at focusing thoughts and discussions! 1.4

Requirement Analysis: Example I m the owner of a medium size video store. We have over 10.000 video tapes that we need to keep track of. Since a few weeks, we also have DVDs. Each of our video tapes has a tape number. For each movie, we need to know its title and category (e.g. comedy, suspense, drama, action, or SciFi), director and year. Yes, we do have multiple copies of many of our movies. We give each movie a specific id, and then track which movie a tape contains. A tape may be either Beta or VHS format. We always have at least one tape for each movie we track, and each tape is always a copy of a single, specific movie. Our tapes are adapted to the movie lengths, so we don t have any movies which require multiple tapes. The movies are stored on shelf according to their category sorted by movie title. We are frequently asked for movies starring specific actors, John Wayne and Katherine Hepburn are always popular. So we d like to keep track of the star actors appearing in each movie... 1.5

Conceptual Design: Example... Not all of our movies have star actors. Customers like to know each actor s real birth name and age. We track only actors who appear in the movies in our inventory. We have lots of customers. We only rent videos to people who have joined our video club. To belong to our club, they must have good credit. For each club member, we d like to keep their first and last name, current phone number, and current address. And, of course each club member has a membership number. Then we need to keep track of what video tapes each customer currently has checked out. A customer may check out multiple video tapes at any given time. Rentals are for one or more days, each movie with an individual price per day. Furthermore we additionally charge 1 $ per beta format tape, 2 $ for a DVD and another $ for movies longer than 2 hours. Maximum rental time is 4 weeks. The customer gets a bill with movie titles, individual prices and total amount, when he /she returns movies." 1.6

Requirement Analysis: Example Note: what is important depends on the applications Essential information customers, tapes, movies,... movies have many copies tape (or DVD) contains exactly one movie customers have customer identification (id) four weeks maximal rental time Redundant, unimportant details "...DVDs since a few weeks "... John Wayne.. Names of the categories (but categories are important!) Tapes on shelf (since we don't design a tape robot) 1.7

Requirement Analysis: Example Clarify unclear statements Video club: admission / annual fee? Charge per tape: is price for one day the minimum?... Fill gaps Any discounts?... Distinguish data/operations Processing a bill Becoming a member of the club 1.8

Conceptual Design: Modeling primitives Entity something which exists Examples: tape, movie Attribute property of an entity Examples: tape has id, movie has title Relationship: Tape Movie connects two or more entities Examples: tape contains a movie. Tape Important terms Tape id Movie title contain Movie Attributes have values Example: John Wayne is starring Not modelled! id title 1.9

Conceptual Design: Structuring the problem Modelling / Conceptual Design typically: Entity-Relationship-Model, data-oriented 1976 introduced by P.P. Chen (Peter P. Chen: The Entity-Relationship Model - Toward a Unified View of Data. TODS 1(1): 9-36, 1976) Title LID hours sometimes: UML (problematic!) Student SID: Number Name: String FName: String Email: String Student attend Lecture attend Name SID Email Lecture LID: Number Title: String hours: Number FName 1.10

Conceptual Design: E-R E R notation Entities & Attributes: Entity attribute attribute attribute Entities have identifying (or key) attributes or sets of attributes Tape key Movie id title director category These attributes together identify a movie 1.11

Conceptual Design: E-R E R notation Relationships attribute attribute Entity_1 relationship Entity_2 attribute attribute Always have a name Do not have a key! Not always reflected by the relationship name see example: "rents" is equivalent to "is-rented_by" Customer rents Tape 1.12

Conceptual Design: Example [ ] We have [ ] video tapes that we need to keep track of. Since a few weeks, we also have DVDs. Each of our video tapes has a tape number. For each movie, we need to know its title and category, director and year. We do have multiple copies of many of our movies. We give each movie a specific id, and then track which movie a tape contains. A tape may be either Beta or VHS Format. We always have at least one tape for each movie we track, and each tape is always a copy of a single, specific movie. Our tapes are adapted to the movie lengths, so we don t have any movies which require multiple tapes. The movies are stored on shelf according to their category sorted by movie title. We are frequently asked for movies starring specific actors. [ ] Customers like to know each actor s real birth name and age. We track only actors who appear in the movies in our inventory. [ ] Rentals are for one or more days, each movie with an individual price per day. Furthermore we additionally charge 1 $ per beta format tape, 2 $ for a DVD and another $ for movies longer than 2 hours. [abbreviated] 1.13

Conceptual Design: Example (without customers) id title category year director id Tape hold Movie Price_per_day belong_to play length name Format charge stage_name Actor real_name birthday 1.14

Conceptual Design: E-R E R notation Multiple relationships Student hold attend Lecture Recursive relationships Lecture Person predecessor require successor role name parent have child 1.15

Conceptual Design: E-R E R notation Relationships with attributes Lecture hold Lecturer rating Different semantics in separate entity: Lecture hold Lecturer belong_to Lecture_date rating 1.16

Conceptual Design: Integrity constraints Integrity constraints (=Invariants) Database must always meet these invariants Important concept Explicit state restrictions from requirements Examples: "There is always at least one tape for each movie, and each tape is always a copy of a single, specific movie "Not all of our movies have star actors" Implicit invariants common Examples: Tape cannot be loaned by more than one customer a time Actor may be starring in more than one movie 1.17

Conceptual Design: Integrity constraints Constraints: Attribute restrictions Cardinality restrictions Attribute restrictions Attribute contain at most one value: unstructured attribute restriction of E-R M. Key attributes are unique Attribute must / may have a value e.g., movie must have title, director is not necessarily known Value may be restricted e.g., movies are made after 1900 : movie.year > 1900 Special restrictions not in E-R model! 1.18

Conceptual Design: Integrity constraints Cardinality restrictions # entities-instances in relationship (UML: multiplicity) Examples: one movie on a tape, tape loaned by at most one customer at a time, #rented tapes per customer 0 one movie on a tape 1:N Movie hold Tape one licence per driver 1:1 Person own drivers license several actors in many movies N:M Movie play Actor 1.19

Conceptual Design: Cardinalities Simple Notation k1 k2 E1 R E2 N 1 Tape rent Customer N tapes are rented by 1 customer Min-Max Notation: (min1,max1) E1 R E2 (min2,max2) (0,1) (0,*) Tape rent Customer Each tape is rented by 0-1 customers Each customer has rented 0-N tapes 1.20

Conceptual Design: Cardinalities 1:1 relationship 1:N relationship N:M relationship person have driverslicence (0,1) (1,1) Movie hold Tape (1,*) (1,1) Lecture hold Lecturer (1,1) (0,*) Do not mix notations! User_account has emailmessage (0,*) (1,*) 1.21

Conceptual Design: Semantics N:M, (min,max( min,max) Let R E1 x E2 be a relationship between entity sets E1 and E2 Important concept R is 1:N R is a partial function R: E2 E1 for all extensions of R e2 E2: {e1 e1 E1 (e1,e2) R } 1 R is 1:1 E2 E1 is a injective partial function R is M:N R is a relation, but not a function (R,E1) has (min1, max1) for all extensions of R and for all x E1 min1 {y y E2 (x,y) R } max1 (R,E2) has (min2, max2) for all extensions of R and for all y E2 min2 {x x E1 (x,y) R } max2 1.22

Conceptual Design: Example (without customers) id title category year director Tape (1,1) (1,1) hold (1,*) Movie (0,*) id Price_per_day belong_to play length (0,*) (1,*) name Format charge stage_name Actor real_name birthday 1.23

Conceptual Design: notational overview mandatory/ multiple optional/ multiple optional/ single mandatory/ single E-RM (min,max) (1,*) (0,*) (0,1) (1,1) E-RM 1:N N or M N or M 1 1 UML 1..* k..j k 0..* * 0.. k 0.. 1 k,j,n,m are natural numbers More notations in use, e.g., oracle-special notation... 1 1.24

Conceptual Design: Weak entities Existentially dependent entities Not globally identifiable Example: Notation: (1,*) (1,1) Building has Room (min1,max1) (min2, max2) E1 R E2 id min2 = 1 : at least one e1 for each e2, otherwise e2 could not be identified max2 = 1 id 1.25

Conceptual Design: Weak entities Example: Movies and their scenes Movie (0,*) (1,1) has Scene Example: Order and Delivery Oid Order (1,*) (1,1) has Item Iid (1,1) (1,*) contains Delivery Did 1.26

Conceptual Design: Weak entities Modelling decision: (0,*) (1,1) employee has child cid eid or cid eid (0,*) (1,1) employee has child Advantages and disadvantages? 1.27

Conceptual Design: Temporal data 1. Condition: tape only rented by one customer at the same time: cid customer rent (0,*) (0,1) videotape vid from until 2. Condition: tape rented by many customers one after the other customer rent (0,*) (0,*) videotape videotape vid cid customer (0,*) has (1,1) is_in rental (0,*) (1,1) from until 1.28

charge Conceptual Design: Example name from id until Format belong_to Tape is_in Rental have (0,*) (1,1) (0,*) (1,1) (1,1) hold (1,1) Telephone (0,*) title Address director category year id (1,*) Customer First_name Movie Last_name (0,*) Mem_no stage_name Price_per_day length play Actor real_name (1,*) birthday 1.29

Conceptual Design: n-ary relationships Example: Lecturer recommends textbook for lecture (0,*) (1,*) Lecturer recommend Textbook (1,*) Lecture Cardinalities: A particular lecturer recommends zero or more "(textbook,lecture) pairs" For each lecture at least one textbook is recommended by lecturers here, (min,max)-constraints not very expressive 1.30

Conceptual Design: n-ary relationships 1:N notation in n-ary relationships Remember: R is 1:N R is function R:E2 E1 E1 1 N R E2 Generalization: R: E 1 x x E j-1 x E j+1 x x E n E j 1 Lecturer recommend N Textbook recommend: Textbook x Lecturer Lecture recommend: Textbook x Lecture Lecturer M Lecture 1.31

Conceptual Design: n-ary relationships (Example 2) 1 Prof. attend 1 Topic M Student Student is allowed to have only one topic for each Prof. Student is allowed to have only one Prof. for each topic Profs. are allowed to use the same topic again A topic can be used be used by many Profs., but for different students 1.32

Conceptual Design: n-ary relationships N-ary relationships expressed by binaries 1. Connect pairs of entities Lecturer Textbook Lecture Less constraints expressible! 2. New central entity, binary relationships to old ones Lecturer Lectureplan Lecture Textbook 1.33

Conceptual Design: Generalization Consider lecturing students: similar objects in different entities Redundancy errors! FName Contract Lecturer hold1 Name lid Email Student attend Lecture FName Name SID Email hold2 Generalization (specialization) helps LID title hours 1.34

Conceptual Design: Generalization Lecture hold hours title LID attend FName Person Name is-a is-a Email pid SID Student Lecturer Contract DB Interpretation of Generalization differs from OO! instances of Student and Lecturer also instances of Person Student Person, Lecturer Person 1.35

Conceptual Design: Generalization OO-interpretation: Instances of A, B and C different but share some attributes is-a B A is-a C DB interpretation: Instances of B and C also instances of A: B A and C A Key-inheritance "is-a" different from ordinary relationships Special cases: Disjoint specialization: Instances of B and C are disjoint Complete specialization: A = B C, no extra tupel in A 1.36

Conceptual Design: Short summary E-R Modelling Standard semi-formal language for conceptual modelling Different notations: we use E-R and (min,max) Important terms Entity (type, set): set of objects with the same attributes Attribute: property of an entity, at most one value per attribute. Relationship (type): association between entity types Role: name of one side of relationship Cardinality (multiplicity): number of entity objects that participate in relationship Weak entity: existentially dependent entity Generalization 1.37