* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download No Slide Title
Survey
Document related concepts
Commitment ordering wikipedia , lookup
Microsoft Access wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Serializability wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Oracle Database wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Ingres (database) wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Concurrency control wikipedia , lookup
Relational algebra wikipedia , lookup
Clusterpoint wikipedia , lookup
ContactPoint wikipedia , lookup
Transcript
The Relational Database Model BUAD/American University Intro to Database Concepts 1 Objectives • To learn the basic relational database components and concepts. • To become familiar with the relational table's components and characteristics. • To learn how keys are used in the relational database environment. • To introduce the relational database operators. • To develop a simple data dictionary. • To examine basic entity relationships. BUAD/American University Intro to Database Concepts 2 What is a relational database • Logical view of data is maintained by letting each entity set be contained in a separate table. • These tables are then linked through the use of shared attributes. • Controlled redundancy to maintain relationships and data integrity. BUAD/American University Intro to Database Concepts 3 Example Case Study • Business called Videos R Us • Sell Videos via mail order • Sample use cases: – Place an Order – Add/Update Titles • Started small, so developed non-relational database, with one primary screen • Business growing, has problems with Database BUAD/American University Intro to Database Concepts 4 Order Form for Videos R Us Customer Number: Order date: First Name: Last Name: Street: City, State, Zip: Phone: Item Shipped? Item Number: Price: BUAD/American University Item Title: Intro to Database Concepts 5 Table of Video Database BUAD/American University Intro to Database Concepts 6 Unnecessary Duplicated Data and Data Consistency • A customer’s name, address and phone number are duplicated for every video they order • A video’s title is duplicated every time the item is ordered • Consistency is hard to maintain • No way to ensure that duplicated data is entered consistently BUAD/American University Intro to Database Concepts 7 Data Insertion Anomaly • Currently, Video store prepares catalog of forthcoming titles by hand (manually) • Now wishes to get list of forthcoming titles form the database and generate the catalog • Problems: – Database does not contain all needed information (e.g. synopsis of video – No way to enter data about video unless someone ordered it! BUAD/American University Intro to Database Concepts 8 Data Deletion Anomaly • What if customer orders only one video • Late, video is discontinued by the Distributor • Store wants to delete all references to the item from its database, because the item is no longer available • Customer information is also deleted BUAD/American University Intro to Database Concepts 9 Meaningful Identifiers • Meaning is coded into the identifier (e.g. Zip code) • What if customer moves? BUAD/American University Intro to Database Concepts 10 The Relational Model • The relational model was formally introduced by Dr. E. F. Codd in 1970 and has evolved since then, through a series of writings. • The model provides a simple, yet rigorously defined, concept of how users perceive data. • The relational model represents data in the form of twodimension tables. • Each table in the represents some real-world person, place, thing, or event about which information is collected. • A relational database is a collection of two-dimensional tables. • The organization of data into relational tables is known as the logical view of the database. BUAD/American University Intro to Database Concepts 11 Relational Databases • Basic concepts – Data model: organize data as tables – A relational database is a set of tables • Advantages – – – – – • Simple concepts Solid mathematical foundation (set theory) Powerful query languages Efficient query optimization strategies Design theory Industry standard – Relational model – SQL language BUAD/American University Intro to Database Concepts 12 What is Relational Database? • In the relational model, a database is a collection of relational tables. • A relational table is a flat file composed of a set of named columns and an arbitrary number of unnamed rows. • The columns of the tables contain information about the table. • The rows of the table represent occurrences of the "thing" represented by the table. • A data value is stored in the intersection of a row and • column. • Each named column has a domain, which is the set of values that may appear in that column. BUAD/American University Intro to Database Concepts 13 Selected Examples from: Database Management Services, The University of Texas at Austin, Computation Center, Website "http://www.utexas.edu/cc/dbms/ Notation • Relational tables can be expressed concisely showing just the table name and the column names. For example, • AUTHOR (au_id, au_lname, au_fname, address, city, state, zip) • TITLE (title_id, title, type, price, pub_id) • PUBLISHER (pub_id, pub_name, city) • AUTHOR_TITLE (au_id, pub_id) BUAD/American University Intro to Database Concepts 15 Properties of Relational Tables • Each row-column entry in the table must have a single atomic value. • Data values in columns are of the same kind. In relational terms, this property states that all values in a given column must come from the same domain, a set of values that the column can have. • Each row is unique. No two rows may have identical values. • Each column must have an unique name. • The sequence of columns (left to right) is insignificant. • The sequence of rows (top to bottom) is insignificant. 16 BUAD/American University Intro to Database Concepts Relationships and Keys • • • • A relationship is an association between two or more tables. Relationships are expressed in the data values of the primary and foreign keys. A primary key is a column or columns in a table whose values uniquely identify each row in a table. A foreign key is a column • or columns whose values are the same as the primary key of another table. You can think of a foreign key as a copy of primary • key from another relational table. • The relationship is made between two relational tables by matching the values of the foreign key in one table with the values of the primary key in another. BUAD/American University Intro to Database Concepts 17 Types of Keys BUAD/American University Intro to Database Concepts 18 Keys are Fundamental • Keys are fundamental to the concept of relational databases because they enable tables in the database to be related with each other. • Navigation around a relational database depends on the ability of the primary key to unambiguously identify specific rows of a table. • Navigating between tables requires that the foreign key is able to correctly and consistently reference the values of the primary keys of a related table. BUAD/American University Intro to Database Concepts 19 Layout of set of tables BUAD/American University Intro to Database Concepts 20 Data Integrity • Data integrity means that you can correctly and consistently navigate and manipulate the tables in the database. There are two basic rules to ensure data integrity: – Entity integrity and – Referential integrity. BUAD/American University Intro to Database Concepts 22 Entity integrity • States that the value of the primary key, can never be a null value (A null value is one that has no value. It is not the same as a blank.) • Because a primary key is used to identify a unique row in a relational table, its value must always be specified and should never be unknown. • The integrity rule requires that inset, update, and delete operations maintain the uniqueness and existence of all primary keys. BUAD/American University Intro to Database Concepts 23 Referential Integrity • States that if a relational table has a foreign key, then every value of the foreign key must either be null or, • Match the values in the relational table in which that foreign key is a primary key. BUAD/American University Intro to Database Concepts 24 Data integrity BUAD/American University Intro to Database Concepts 25 What is a relational database table, and what are its components? • Relational database table is a logical structure that houses related entities. • Logical structure is visualized as a matrix composed of intersecting rows, one for each entity, and columns, one for each attribute. • Table stores an entity set. (entity and entity set are often used interchangeably in the literature) BUAD/American University Intro to Database Concepts 26 Relational operators • Used to retrieve and manipulate data easily and reliably. • Relational operators, based on the relational algebra functions UNION, DIFFERENCE, INTERSECT, PRODUCT, PROJECT, SELECT, JOIN, and DIVIDE. • Provide effective and efficient data retrieval and manipulation. BUAD/American University Intro to Database Concepts 27 Union • The union operation of two relational tables is formed by appending rows from one table with those of a second table to produce a third. • Duplicate rows are eliminated. • The notation for the union of Tables A and B is A UNION B. • The relational tables used in the union operation must be union compatible. • Tables that are union compatible must have the same number of columns and corresponding columns must come from the same domain BUAD/American University Intro to Database Concepts 28 Union Example BUAD/American University Intro to Database Concepts 29 Difference • The difference of two relational tables is a third that contains those rows which occur in the first table but not in the second. • The Difference operation requires that the tables be union compatible. • As with arithmetic, the order of subtraction matters. That is, A - B is not the same as B - A BUAD/American University Intro to Database Concepts 30 Difference Example BUAD/American University Intro to Database Concepts 31 Intersection • The intersection of two relational tables is a third table that contains common rows. • Both tables most be union compatible. • The notation for the intersection of A and B is A [intersection] B = C or A INTERSECT B BUAD/American University Intro to Database Concepts 32 Intersection Example BUAD/American University Intro to Database Concepts 33 Product • The product of two relational tables, also called the Cartesian Product, is the concatenation of every row in one table with every row in the second. • The product of table A (having m rows) and table B (having n rows) is the table C (having m x n rows). • The product is denoted as A X B or A TIMES B. • The product operation is by itself, not very useful. However, it is often used as an intermediate process in a Join. BUAD/American University Intro to Database Concepts 34 Product Example BUAD/American University Intro to Database Concepts 35 Projection • The project operator retrieves a subset of columns from a table, removing duplicate rows from the result. BUAD/American University Intro to Database Concepts 36 Selection • The select operator, sometimes called restrict to prevent confusion with the SQL SELECT command, retrieves subsets of rows from a relational table based on a value(s) in a column or columns. BUAD/American University Intro to Database Concepts 37 Join • A Join operation combines the product, selection, and, possibly, projection. • The join operator horizontally combines (concatenates) data from one row of a table with rows from another or the same table when certain criteria are met. • The criteria involves a relationship among the columns in the join relational table. • If the join criterion is based on equality of column value, the result is called an equijoin. • A natural join, is an equijoin with redundant columns removed. • Joins can also be done on criteria other than equality. BUAD/American University Intro to Database Concepts 38 Join Example BUAD/American University Intro to Database Concepts 39 Division • The division operator results in columns values in one table for which there are other matching column values corresponding to every row in another table. BUAD/American University Intro to Database Concepts 40 Division Example BUAD/American University Intro to Database Concepts 41 Domains • A domain is a set of acceptable values for a variable. – Example : State Codes, Salaries of Employees • Domain compatibility – Binary operations (e.g., comparison to one another, addition, etc) can be performed on them. • Full support for domains is not provided in many current relational DBMSs BUAD/American University Intro to Database Concepts 42 Relation Schemes BUAD/American University Intro to Database Concepts 43 Example Relation Instances BUAD/American University Intro to Database Concepts 44 Relational Properties • Based on the set theory – no ordering among attributes and rows (tuples) – no duplicate rows (tuples) allowed – value-oriented: rows (tuples) are identified by the attributes values • All attribute values are atomic – no repeating groups • Cardinality – number of tuples BUAD/American University Intro to Database Concepts 45 Homonyms • Similar-sounding words with different meanings – boar and bore • Identically spelled words with different meanings, – fair (meaning “just”) and fair (meaning “festival”). • Indicates the use of the same attribute name to label different attributes. BUAD/American University Intro to Database Concepts 46 Synonym • Opposite of a homonym • Indicates the use of different names to describe the same attribute – car and auto refer to the same object. • If the same attribute occurs in different tables, should carry the same name in each table. BUAD/American University Intro to Database Concepts 47 Data Dictionary • Create and update a simple data dictionary to keep track of the entities and attributes as the design begins to take shape. • Lack of a data dictionary makes it difficult to keep track of attributes and virtually guarantees the insertion of homonyms and synonyms. BUAD/American University Intro to Database Concepts 48 Relational Database and Physical Storage • Logical (matrix) view of a table is not physically stored on disk this way. • RDBMS takes care of the physical storage details to let us concentrate on the logical structure • So easier to visualize what's happening in the database. BUAD/American University Intro to Database Concepts 49 Entity-Relationship (ER) model • The was originally proposed by Peter Chen [Chen76], as way to unify the network and relational database views. Simply stated the • ER model is a conceptual data model that views the real world as entities and relationships. • A basic component of the model is the EntityRelationship diagram which is used to visually represents data objects. BUAD/American University Intro to Database Concepts 50 Uses of ER model Maps well to the relational model Constructs used in the ER model transformed into relational tables. Can be used to by the database designer to communicate the design to the end user. Model can be used as a design plan BUAD/American University Intro to Database Concepts 51 Basic Elements of E-R Modeling • Views the real world as entities and associations between entities. • Entities are the principal data object about which information is to be collected • Relationships represents an association between two or more entities. BUAD/American University Intro to Database Concepts 52 Entities • Entities are usually recognizable concepts, either concrete or abstract, such as person, places, things, or events which have relevance to the database • Examples of entities are EMPLOYEES, PROJECTS, INVOICES • An entity is analogous to a table in the relational model. BUAD/American University Intro to Database Concepts 53 Entity instance (occurrence) • An instance is an individual instance of an entity. • An instance is analogous to a row in the relational table BUAD/American University Intro to Database Concepts 54 Relationships • Represents an association between two or more entities. • An example of a relationship would be: – employees are assigned to projects – projects have activities – Departments manage one or more projects BUAD/American University Intro to Database Concepts 55 Attributes • Attributes describe the entity of which they are associated. • A particular instance of an attributes is a value. – For example, ”Peter" is one value of the attribute First_Name. • A domain is the collection of all possible values an attribute can have. • The domain of Name is a character string. BUAD/American University Intro to Database Concepts 56