CSC 261/461 – Database Systems Lecture 14

Total Page:16

File Type:pdf, Size:1020Kb

CSC 261/461 – Database Systems Lecture 14 CSC 261/461 – Database Systems Lecture 14 Spring 2017 MW 3:25 pm – 4:40 pm January 18 – May 3 Dewey 1101 Announcement • Midterm on this Wednesday • Please arrive 5 minutes early; We will start at 3:25 sharp • I may post a sitting arrangement tomorrow. • Start studying for MT CSC 261, Spring 2017, UR Are you ready? CSC 261, Spring 2017, UR Night before the exam CSC 261, Spring 2017, UR During the exam CSC 261, Spring 2017, UR Or Finishing too early CSC 261, Spring 2017, UR MIDTERM REVIEW CSC 261, Spring 2017, UR Chapters to Read • Chapter 1 • Chapter 2 • Chapter 3 • Chapter 4 (Just the basics. Only ISA relationships. Even studying the slides is fine) • Chapter 5, 6, 7 (SQL) • Chapter 8 • Chapter 9 • Chapter 14 (14.1-14.5) • Chapter 15 (15.1-15.3) 8 Exam Structure • Problem 1 (20 pts) – Short answers, True/False, or One liner • Other problems (40 pts) • Tot a l : 60 p t s • 2 bonus points for writing the class id correctly. CSC 261, Spring 2017, UR Time distribution • Time crunch – Not really – Should take more than 60 minutes to finish. – Not as relaxed as the quiz CSC 261, Spring 2017, UR MATERIALS COVERED CSC 261, Spring 2017, UR Questions to ponder • Why not Lists? Why database? • How related tables avoid problems associated with lists? CSC 261, Spring 2017, UR Problems with Lists • Multiple Concepts or Themes: – Microsoft Excel vs Microsoft Access • Redundancy • Anomalies: – Deletion anomalies – Update anomalies – Insertion anomalies CSC 261, Spring 2017, UR List vs Database • Lists do not provide information about relations! • Break lists into tables • Facilitates: – Insert – Delete – Update • Input and Output interface (Forms and Reports) • Query! CSC 261, Spring 2017, UR Again, Why database? • To store data • To provide structure • Mechanism for querying, creating, modifying and deleting data. • CRED (Create, Read, Update, Delete) • Store information and relationships CSC 261, Spring 2017, UR Simplified Database System Environment CSC 261, Spring 2017, UR SQL CSC 261, Spring 2017, UR General form SQL SELECT S FROM R1,…,Rn WHERE C1 GROUP BY a1,…,ak HAVING C2 Evaluation steps: 1. Evaluate FROM-WHERE: apply condition C1 on the attributes in R1,…,Rn 2. GROUP BY the attributes a1,…,ak 3. Apply condition C2 to each group (may have aggregates) 4. Compute aggregates in S and return the result CSC 261, Spring 2017, UR Grouping and Aggregation Semantics of the query: 1. Compute the FROM and WHERE clauses 2. Group by the attributes in the GROUP BY 3. Compute the SELECT clause: grouped attributes and aggregates 19 1. Compute the FROM and WHERE clauses SELECT product, SUM(price*quantity) AS TotalSales FROM Purchase WHERE date > ‘10/1/2005’ GROUP BY product Product Date Price Quantity FROM Bagel 10/21 1 20 Bagel 10/25 1.50 20 Banana 10/3 0.5 10 Banana 10/10 1 10 20 2. Group by the attributes in the GROUP BY SELECT product, SUM(price*quantity) AS TotalSales FROM Purchase WHERE date > ‘10/1/2005’ GROUP BY product Product Date Price Quantity Product Date Price Quantity GROUP BY Bagel 10/21 1 20 10/21 1 20 Bagel Bagel 10/25 1.50 20 10/25 1.50 20 Banana 10/3 0.5 10 10/3 0.5 10 Banana Banana 10/10 1 10 10/10 1 10 21 3. Compute the SELECT clause: grouped attributes and aggregates SELECT product, SUM(price*quantity) AS TotalSales FROM Purchase WHERE date > ‘10/1/2005’ GROUP BY product Product Date Price Quantity SELECT Product TotalSales 10/21 1 20 Bagel 10/25 1.50 20 Bagel 50 10/3 0.5 10 Banana Banana 15 10/10 1 10 22 HAVING Clause SELECT product, SUM(price*quantity) Same query as FROM Purchase before, except WHERE date > ‘10/1/2005’ that we consider GROUP BY product HAVING SUM(quantity) > 100 only products that have more than 100 buyers HAVING clauses contains conditions on aggregates Whereas WHERE clauses condition on individual tuples… 23 Null Values Unexpected behavior: SELECT * FROM Person WHERE age < 25 OR age >= 25 Some Persons are not included ! 24 Null Values Can test for NULL explicitly: – x IS NULL – x IS NOT NULL SELECT * FROM Person WHERE age < 25 OR age >= 25 OR age IS NULL Now it includes all Persons! 25 Inner Joins By default, joins in SQL are “inner joins”: Product(name, category) Purchase(prodName, store) SELECT Product.name, Purchase.store FROM Product JOIN Purchase ON Product.name = Purchase.prodName Both equivalent: SELECT Product.name, Purchase.store Both INNER JOINS! FROM Product, Purchase WHERE Product.name = Purchase.prodName 26 Inner Joins + NULLS = Lost data? By default, joins in SQL are “inner joins”: Product(name, category) Purchase(prodName, store) SELECT Product.name, Purchase.store FROM Product JOIN Purchase ON Product.name = Purchase.prodName SELECT Product.name, Purchase.store FROM Product, Purchase WHERE Product.name = Purchase.prodName However: Products that never sold (with no Purchase tuple) will be lost! 27 INNER JOIN: Product Purchase name category prodName store Gizmo gadget Gizmo Wiz Camera Photo Camera Ritz OneClick Photo Camera Wiz name store SELECT Product.name, Purchase.store FROM Product Gizmo Wiz INNER JOIN Purchase ON Product.name = Purchase.prodName Camera Ritz Camera Wiz Note: another equivalent way to write an INNER JOIN! 28 LEFT OUTER JOIN: Product Purchase name category prodName store Gizmo gadget Gizmo Wiz Camera Photo Camera Ritz OneClick Photo Camera Wiz name store SELECT Product.name, Purchase.store Gizmo Wiz FROM Product LEFT OUTER JOIN Purchase Camera Ritz ON Product.name = Purchase.prodName Camera Wiz OneClick NULL 29 Other Outer Joins • Left outer join: – Include the left tuple even if there’s no match • Right outer join: – Include the right tuple even if there’s no match • Full outer join: – Include the both left and right tuples even if there’s no match 30 Also read • Triggers • Views • Operations on Databases – Create, Drop, and Alter • Operations of Tables – Create, Delete and Update • Constraint: – Key constraint – Foreign key – On Delete cascade, Set Null, Set Default; CSC 261, Spring 2017, UR DATABASE DESIGN CSC 261, Spring 2017, UR Database Design Process 3. Logical, Physical, Security, 1. Requirements Analysis 2. Conceptual Design etc. 1. Requirements analysis Technical and non- technical people are – What is going to be stored? involved – How is it going to be used? – What are we going to do with the data? – Who should access the data? CSC 261, Spring 2017, UR Database Design Process 1. Requirements Analysis 2. Conceptual Design 3. Logical, Physical, Security, etc. 2. Conceptual Design – A high-level description of the database – Sufficiently precise that technical people can understand it – But, not so precise that non-technical people can’t participate This is where E/R fits in. CSC 261, Spring 2017, UR Database Design Process 1. Requirements Analysis 2. Conceptual Design 3. Logical, Physical, Security, etc. 3. Implementation: • Logical Database Design • Physical Database Design • Security Design CSC 261, Spring 2017, UR Database Design Process 1. Requirements Analysis 2. Conceptual Design 3. Logical, Physical, Security, etc. This process is E/R Model & Diagrams used iterated many name times name category price Product Makes Company E/R is a visual syntax for DB design which is precise enough for technical points, but abstracted enough for non-technical people CSC 261, Spring 2017, UR Requirements Become the E-R Data Model • After the requirements have been gathered, they are transformed into an Entity Relationship (E-R) Data Model • E-R Models consist of 1. Entities 2. Attributes a) Identifiers (Keys) b) Non-key attributes 3. Relationships CSC 261, Spring 2017, UR 1. E/R BASICS: ENTITIES & RELATIONS CSC 261, Spring 2017, UR Entities and Entity Sets • An entity set has attributes Shapes are – Represented by ovals important. Colors are attached to an entity set not. name category price Product CSC 261, Spring 2017, UR Keys • A key is a minimal set of attributes that uniquely identifies an entity. Denote elements of the primary key by underlining. name category Here, {name, category} is nota key (it is not minimal). price Product The E/R model forces us to designate a single primary key, though there may be multiple candidate keys CSC 261, Spring 2017, UR Relationships • A relationship connects two or more entity sets. • It is represented by a diamond, with lines to each of the entity sets involved. • The degree of the relationship defines the number of entity classes that participate in the relationship – Degree 1 is a unary relationship – Degree 2 is a binary relationship – Degree 3 is a ternary relationship CSC 261, Spring 2017, UR Conceptual Unary Relationship Person Marries CSC 261, Spring 2017, UR Conceptual Binary Relationship Person Owns Cars CSC 261, Spring 2017, UR Conceptual Ter nar y Rel at i ons hi p Doctor Patient Prescription Drug CSC 261, Spring 2017, UR The R in E/R: Relationships • E, R and A together: name name category price Product Makes Company CSC 261, Spring 2017, UR What is a Relationship? name name category price Product Makes Company A relationship between entity sets P and C is a subset of all possible pairs of entities in P and C, with tuples uniquely identified by P and C’s keys CSC 261, Spring 2017, UR What is a Relationship? Company Product Company C × Product P name name category price C.name P.name P.category P.price GizmoWorks Gizmo Electronics $9.99 GizmoWorks Gizmo Electronics $9.99 GadgetCorp GizmoLite Electronics $7.50 GizmoWorks GizmoLite Electronics $7.50 Gadget Toys $5.50 GizmoWorks Gadget Toys $5.50 GadgetCorp Gizmo Electronics $9.99 GadgetCorp GizmoLite Electronics $7.50 GadgetCorp Gadget Toys $5.50 name category name
Recommended publications
  • ACS-3902 Ron Mcfadyen Slides Are Based on Chapter 5 (7Th Edition)
    ACS-3902 Ron McFadyen Slides are based on chapter 5 (7th edition) (chapter 3 in 6th edition) ACS-3902 1 The Relational Data Model and Relational Database Constraints • Relational model – Ted Codd (IBM) 1970 – First commercial implementations available in early 1980s – Widely used ACS-3902 2 Relational Model Concepts • Database is a collection of relations • Implementation of relation: table comprising rows and columns • In practice a table/relation represents an entity type or relationship type (entity-relationship model … later) • At intersection of a row and column in a table there is a simple value • Row • Represents a collection of related data values • Formally called a tuple • Column names • Columns may be referred to as fields, or, formally as attributes • Values in a column are drawn from a domain of values associated with the column/field/attribute ACS-3902 3 Relational Model Concepts 7th edition Figure 5.1 ACS-3902 4 Domains • Domain – Atomic • A domain is a collection of values where each value is indivisible • Not meaningful to decompose further – Specifying a domain • Name, data type, rules – Examples • domain of department codes for UW is a list: {“ACS”, “MATH”, “ENGL”, “HIST”, etc} • domain of gender values for UW is the list (“male”, “female”) – Cardinality: number of values in a domain – Database implementation & support vary ACS-3902 5 Domain example - PostgreSQL CREATE DOMAIN posint AS integer CHECK (VALUE > 0); CREATE TABLE mytable (id posint); INSERT INTO mytable VALUES(1); -- works INSERT INTO mytable VALUES(-1); -- fails https://www.postgresql.org/docs/current/domains.html ACS-3902 6 Domain example - PostgreSQL CREATE DOMAIN domain_code_type AS character varying NOT NULL CONSTRAINT domain_code_type_check CHECK (VALUE IN ('ApprovedByAdmin', 'Unapproved', 'ApprovedByEmail')); CREATE TABLE codes__domain ( code_id integer NOT NULL, code_type domain_code_type NOT NULL, CONSTRAINT codes_domain_pk PRIMARY KEY (code_id) ) ACS-3902 7 Relation • Relation schema R – Name R and a list of attributes: • Denoted by R (A1, A2, ...,An) • E.g.
    [Show full text]
  • Relational Database Design Chapter 7
    Chapter 7: Relational Database Design Chapter 7: Relational Database Design First Normal Form Pitfalls in Relational Database Design Functional Dependencies Decomposition Boyce-Codd Normal Form Third Normal Form Multivalued Dependencies and Fourth Normal Form Overall Database Design Process Database System Concepts 7.2 ©Silberschatz, Korth and Sudarshan 1 First Normal Form Domain is atomic if its elements are considered to be indivisible units + Examples of non-atomic domains: Set of names, composite attributes Identification numbers like CS101 that can be broken up into parts A relational schema R is in first normal form if the domains of all attributes of R are atomic Non-atomic values complicate storage and encourage redundant (repeated) storage of data + E.g. Set of accounts stored with each customer, and set of owners stored with each account + We assume all relations are in first normal form (revisit this in Chapter 9 on Object Relational Databases) Database System Concepts 7.3 ©Silberschatz, Korth and Sudarshan First Normal Form (Contd.) Atomicity is actually a property of how the elements of the domain are used. + E.g. Strings would normally be considered indivisible + Suppose that students are given roll numbers which are strings of the form CS0012 or EE1127 + If the first two characters are extracted to find the department, the domain of roll numbers is not atomic. + Doing so is a bad idea: leads to encoding of information in application program rather than in the database. Database System Concepts 7.4 ©Silberschatz, Korth and Sudarshan 2 Pitfalls in Relational Database Design Relational database design requires that we find a “good” collection of relation schemas.
    [Show full text]
  • Relational Database Design: FD's & BCNF
    CS145 Lecture Notes #5 Relational Database Design: FD's & BCNF Motivation Automatic translation from E/R or ODL may not produce the best relational design possible Sometimes database designers like to start directly with a relational design, in which case the design could be really bad Notation , , ... denote relations denotes the set of all attributes in , , ... denote attributes , , ... denote sets of attributes Functional Dependencies A functional dependency (FD) has the form , where and are sets of attributes in a relation Formally, means that whenever two tuples in agree on all the attributes of , they must also agree on all the attributes of Example: FD's in Student(SID, SS#, name, CID, grade) Some FD's are more interesting than others: Trivial FD: where is a subset of Example: Nontrivial FD: where is not a subset of Example: Completely nontrivial FD: where and do not overlap Example: Jun Yang 1 CS145 Spring 1999 Once we declare that an FD holds for a relation , this FD becomes a part of the relation schema Every instance of must satisfy this FD This FD should better make sense in the real world! A particular instance of may coincidentally satisfy some FD But this FD may not hold for in general Example: name SID in Student? FD's are closely related to: Multiplicity of relationships Example: Queens, Overlords, Zerglings Keys Example: SID, CID is a key of Student Another de®nition of key: A set of attributes is a key for if (1) ; i.e., is a superkey (2) No proper subset of satis®es (1) Closures of Attribute Sets Given , a set of FD's
    [Show full text]
  • DBMS Keys Mahmoud El-Haj 13/01/2020 The
    DBMS Keys Mahmoud El-Haj 13/01/2020 The following is to help you understand the DBMS Keys mentioned in the 2nd lecture (2. Relational Model) Why do we need keys: • Keys are the essential elements of any relational database. • Keys are used to identify tuples in a relation R. • Keys are also used to establish the relationship among the tables in a schema. Type of keys discussed below: Superkey, Candidate Key, Primary Key (for Foreign Key please refer to the lecture slides (2. Relational Model). • Superkey (SK) of a relation R: o Is a set of attributes SK of R with the following condition: . No two tuples in any valid relation state r(R) will have the same value for SK • That is, for any distinct tuples t1 and t2 in r(R), t1[SK] ≠ t2[SK] o Every relation has at least one default superkey: the set of all its attributes o Basically superkey is nothing but a key. It is a super set of keys where all possible keys are included (see example below). o An attribute or a set of attributes that can be used to identify a tuple (row) of data in a Relation (table) is a Superkey. • Candidate Key of R (all superkeys that can be candidate keys): o A "minimal" superkey o That is, a (candidate) key is a superkey K such that removal of any attribute from K results in a set of attributes that IS NOT a superkey (does not possess the superkey uniqueness property) (see example below). o A Candidate Key is a Superkey but not necessarily vice versa o Candidate Key: Are keys which can be a primary key.
    [Show full text]
  • The Relational Model
    The Relational Model Watch video: https://youtu.be/gcYKGV-QKB0?t=5m15s Topics List • Relational Model Terminology • Properties of Relations • Relational Keys • Integrity Constraints • Views Relational Model Terminology • A relation is a table with columns and rows. • Only applies to logical structure of the database, not the physical structure. • Attribute is a named column of a relation. • Domain is the set of allowable values for one or more attributes. Relational Model Terminology • Tuple is a row of a relation. • Degree is the number of attributes in a relation. • Cardinality is the number of tuples in a relation. • Relational Database is a collection of normalised relations with distinct relation names. Instances of Branch and Staff Relations Examples of Attribute Domains Alternative Terminology for Relational Model Topics List • Relational Model Terminology • Properties of Relations • Relational Keys • Integrity Constraints • Views Properties of Relations • Relation name is distinct from all other relation names in relational schema. • Each cell of relation contains exactly one atomic (single) value. • Each attribute has a distinct name. • Values of an attribute are all from the same domain. Properties of Relations • Each tuple is distinct; there are no duplicate tuples. • Order of attributes has no significance. • Order of tuples has no significance, theoretically. Topics List • Relational Model Terminology • Properties of Relations • Relational Keys • Integrity Constraints • Views Relational Keys • Superkey • Super key stands for superset of a key. A Super Key is a set of one or more attributes that are taken collectively and can identify all other attributes uniquely. • An attribute, or set of attributes, that uniquely identifies a tuple within a relation.
    [Show full text]
  • Session 7 – Main Theme
    Database Systems Session 7 – Main Theme Functional Dependencies and Normalization Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences Presentation material partially based on textbook slides Fundamentals of Database Systems (6th Edition) by Ramez Elmasri and Shamkant Navathe Slides copyright © 2011 and on slides produced by Zvi Kedem copyight © 2014 1 Agenda 1 Session Overview 2 Logical Database Design - Normalization 3 Normalization Process Detailed 4 Summary and Conclusion 2 Session Agenda . Logical Database Design - Normalization . Normalization Process Detailed . Summary & Conclusion 3 What is the class about? . Course description and syllabus: » http://www.nyu.edu/classes/jcf/CSCI-GA.2433-001 » http://cs.nyu.edu/courses/spring15/CSCI-GA.2433-001/ . Textbooks: » Fundamentals of Database Systems (6th Edition) Ramez Elmasri and Shamkant Navathe Addition Wesley ISBN-10: 0-1360-8620-9, ISBN-13: 978-0136086208 6th Edition (04/10) 4 Icons / Metaphors Information Common Realization Knowledge/Competency Pattern Governance Alignment Solution Approach 55 Agenda 1 Session Overview 2 Logical Database Design - Normalization 3 Normalization Process Detailed 4 Summary and Conclusion 6 Agenda . Informal guidelines for good design . Functional dependency . Basic tool for analyzing relational schemas . Informal Design Guidelines for Relation Schemas . Normalization: . 1NF, 2NF, 3NF, BCNF, 4NF, 5NF • Normal Forms Based on Primary Keys • General Definitions of Second and Third Normal Forms • Boyce-Codd Normal Form • Multivalued Dependency and Fourth Normal Form • Join Dependencies and Fifth Normal Form 7 Logical Database Design . We are given a set of tables specifying the database » The base tables, which probably are the community (conceptual) level . They may have come from some ER diagram or from somewhere else .
    [Show full text]
  • Database Final Exam Notes SQL Functional Dependencies And
    ⟨Ssn, Pnumber, Hours, Ename, Pname, Plocation⟩ Database Final Exam Notes Dependencies: Ssn ⟶ Ename Pnumber ⟶ Pname, Plocation SQL {Ssn, Pnumber} ⟶ Hours 1. create table employee2 ( 2. create table department2 ( fname varchar(15) not null, dname varchar(15) not null, lname varchar(15) not null, dnumber int not null, ssn char(9) not null, mgr_ssn char(9) not null, salary decimal(10,2), primary key (dnumber), super_ssn char(9), foreign key (mgr_ssn) references employee(ssn) dno int not null, ); primary key (ssn), foreign key (super_ssn) references employee(ssn), foreign key (dno) references department(dnumber) ); 3. insert into employee2 values (©peter©, ©dordal©, ©123456789©, 29000.01, ©012345678©, 55); 4. delete from employee2 where fname=©peter©; 5. update employee2 set salary = 1.10 * salary where salary >= 50000; 6. select e.lname from employee2 e where e.dno = 5; 7a. select e.lname from employee2 e, department2 d where e.dno = d.dnumber and d.dname="maintenance"; 7b. select e.lname from employee2 e join department2 d on e.dno = d.dnumber where d.dname="maintenance"; (same result as 7a) 8. select e.lname from employee2 e where e.salary in (select e.salary from employee2 e where e.dno = 5); 9. select e.dno, count(*) from employee e GROUP BY e.dno; 10. select e.dno, sum(e.salary) from employee e GROUP BY e.dno 11. Select sum(e.salary) from employee2 e, department2 d where d.dname=©Research© and d.dnumber=e.dno; 12. Select e.lname, e.salary, 1.035 * e.salary AS newsalary from employee2; Normal Forms and Normalization First Normal Form Functional Dependencies and Normalization First Normal Form (1NF) means that a relation has no composite attributes or multivalued attributes.
    [Show full text]
  • Relational Data Model a Brief History of Data Models Relational Model
    A Brief History of Data Models 1950s file systems, punched cards 1960s hierarchical Relational Data Model IMS 1970s network CODASYL, IDMS 1980s relational INGRES, ORACLE, DB2, Sybase Paradox, dBase 1990s object oriented and object relational O2, GemStone, Ontos Relational Model COURSE Sets Courseno Subject Lecturer Machine collections of items of the same type no order domain range CS250 Programming Lindsey Sun no duplicates 1:many CS260 Graphics Hubbold Sun Mappings many:1 CS270 Micros Woods PC CS290 Verification Barringer Sun 1:1 many:many Relational Model Notes Comparative Terms no duplicate tuples in a relation a relation is a set of tuples Formal Oracle no ordering of tuples in a relation Relation schema Table description a relation is a set Relation Table Tuple Row attributes of a relation have an implied Attribute Column ordering Domain Value set but used as functions and referenced by name, not position Notation every tuple must have attribute values drawn Course (courseno, subject, from all of the domains of the relation or the equipment) special value NULL Student(studno,name,hons) Enrol(studno,courseno,labmark) all a domain’s values and hence attribute’s values are atomic. 1 Keys Foreign Key SuperKey a set of attributes in a relation that exactly a set of attributes whose values together uniquely matches a (primary) key in another relation identify a tuple in a relation the names of the attributes don’t have to be the Candidate Key same but must be of the same domain a superkey for which no proper subset is a a foreign key in a relation A matching a primary superkey…a key that is minimal .
    [Show full text]
  • Relational Keys I. Superkey
    Chapter 4 The Relational Model Pearson Education © 2009 Overview I. This chapter covers the relational model, which provides a formal description of the structure of a database II. The next chapter covers the relational algebra and calculus, which provides a formal basis for the query language for the database 2 Instances of Branch and Staff Relations 3 Pearson Education © 2009 Relational Model Terminology I. A relation is a table with columns and rows. A. Only applies to logical structure of the database, not the physical structure. II. An attribute is a named column of a relation. III. A domain is the set of allowable values for one or more attributes. 4 Pearson Education © 2009 Relational Model Terminology IV. A tuple is a row of a relation. V. The degree is the number of attributes in a relation. VI. The cardinality is the number of tuples in a relation. VII. A Relational Database is a collection of normalized relations with distinct relation names. • Typically means that the only shared columns among relations are foreign keys (eliminates redundancy) 5 Pearson Education © 2009 Examples of Attribute Domains 6 Pearson Education © 2009 Alternative Terminology for Relational Model 7 Pearson Education © 2009 Mathematical Definition of Relation I. Consider two sets, D1 & D2, where D1 = {2, 4} and D2 = {1, 3, 5}. II. Cartesian product, D1 × D2, is set of all ordered pairs, where first element is member of D1 and second element is member of D2. D1 × D2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)} A. Alternative way is to find all combinations of elements with first from D1 and second from D2.
    [Show full text]
  • Subject: Database Management Systems
    Structure 1.0 Objectives 1.1 Introduction 1.2 Data Processing Vs. Data Management Systems 1.3 File Oriented Approach 1.4 Database Oriented Approach to Data Management 1.5 Characteristics of Database 1.6 Advantages and Disadvantages of a DBMS 1.7 Instances and Schemas 1.8 Data Models 1.9 Database Languages 1.9 Data Dictionary 1.11 Database Administrators and Database Users 1.12 DBMS Architecture and Data Independence 1.13 Types of Database System 1.14 Summary 1.15 keywords 1.16 Self Assessment Questions (SAQ) 1.17 References/Suggested Readings 1.0 Objectives At the end of this chapter the reader will be able to: • Distinguish between data and information and Knowledge • Distinguish between file processing system and DBMS • Describe DBMS its advantages and disadvantages • Describe Database users including data base administrator • Describe data models, schemas and instances. • Describe DBMS Architecture & Data Independence • Describe Data Languages 1 1.1 Introduction A database-management system (DBMS) is a collection of interrelated data and a set of programs to access those data. This is a collection of related data with an implicit meaning and hence is a database. The collection of data, usually referred to as the database, contains information relevant to an enterprise. The primary goal of a DBMS is to provide a way to store and retrieve database information that is both convenient and efficient. By data, we mean known facts that can be recorded and that have implicit meaning. For example, consider the names, telephone numbers, and addresses of the people you know. You may have recorded this data in an indexed address book, or you may have stored it on a diskette, using a personal computer and software such as DBASE IV or V, Microsoft ACCESS, or EXCEL.
    [Show full text]
  • The Relational Data Model and Relational Database Constraints
    The Relational Data Model and Relational Database Constraints First introduced by Ted Codd from IBM Research in 1970, seminal paper, which introduced the Relational Model of Data representation. It is based on Predicate Logic and set theory. Predicate logic is used extensively in mathematics and provides a framework in which an assertion can be verified as either true or false. For example, a person with T number T00178477 is named Lila Ghemri. This assertion can easily be demonstrated as true or false. Set theory deals with sets and is used as a basis for data manipulation in the relational model. For example, assume that A= {16, 24, 77}, B= {44, 77, 90, 11}. Given this information, we can compute that A B= {77} Based on these concepts, the relational model has three well defined components: 1. A logical data structure represented by relations 2. A set of integrity rules to enforce that the data are and remain consistent over time 3. A set of operations that defines how data are manipulated. Relational Model Concepts: The relational model represents the database as a collection of relations. Informally, each relation resembles a table of values or a flat file of records. When a relation is thought of as a table of values, each row in the table represents a collection of related data values corresponding to a real world entity. The table name and column names are used to help interpret the meaning of the values in each row. For example the table below is called STUDENT because each row represents facts about a particular student entity.
    [Show full text]
  • Constraints and Updates
    CONSTRAINTS AND UPDATES CHAPTER 3 (6/E) CHAPTER 5 (5/E) 1 LECTURE OUTLINE . Constraints in Relational Databases . Update Operations . Brief History of Database Applications (from Section 1.7) 3 RELATIONAL MODEL CONSTRAINTS . Constraints • Restrictions on the permitted values in a database state • Derived from the rules in the miniworld that the database represents . Inherent model-based constraints or implicit constraints • Inherent in the data model • e.g., duplicate tuples are not allowed in a relation . Schema-based constraints or explicit constraints • Can be directly expressed in schemas of the data model • e.g., films have only one director . Application-based or semantic constraints • Also called business rules • Not directly expressed in schemas • Expressed and enforced by application program • e.g., this year’s salary increase can be no more than last year’s 4 DOMAIN CONSTRAINTS . Declared by specifying the data type for each attribute: • Numeric data types for integers and real numbers • Characters • Booleans • Fixed-length strings • Variable-length strings • Date, time, timestamp • Money • Other special data types 5 KEY CONSTRAINTS . Uniqueness constraints on tuples . SK {A1, A2, ..., An} is a superkey of R(A1, A2, ..., An) if • In any relation state r of R, no two distinct tuples can have the same values for SK • t1 [SK] = t2 [SK] t1 = t2 . K is a key of R if 1. K is a superkey of R 2. Removing any attribute from K leaves a set of attributes that is not a superkey of R any more • No proper subset of K is a superkey of R . If K is a key, it satisfies two properties 1.
    [Show full text]