1 SQL/DDL. 2 רשימת הנושאים  מבוא ל SQL  CREATE  VIEWS  ASSERTIONS  GRANT/REVOKE  Triggers  INDEX.

Slides:



Advertisements
Similar presentations
Data Definition and Integrity Constraints
Advertisements

1 Constraints, Triggers and Active Databases Chapter 9.
Pertemuan ke 2 Tipe data & ERD Kurniawan Eka Permana.
Fall 2005 ICS184/EECS116 – Notes 08 1 ICS 184/EECS116: Introduction to Data Management Lecture Note 8 SQL: Structured Query Language -- DDL.
Overview Begin 6:00 Quiz15 mins6:15 Review Table Terms25 mins6:40 Short Break10 mins6:50 SQL: Creating Tables60 mins7:50 Break10 mins8:00 Lab – Creating.
Database Design -- Basic SQL
Day 3 - Basics of MySQL What is MySQL What is MySQL How to make basic tables How to make basic tables Simple MySQL commands. Simple MySQL commands.
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 28 Database Systems I The Relational Data Model.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4 SQL: Data Definition, Constraints, and Basic Queries and Updates.
Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.
Basic SQL types String –Char(n): fixed length. Padded –Varchar(n): variable length Number –Integer: 32 bit –Decimal(5,2): –Real, Double: 32 bit,
Murali Mani SQL DDL and Oracle utilities. Murali Mani Datatypes in SQL INT (or) INTEGER FLOAT (or) REAL DECIMAL (n, m) CHAR (n) VARCHAR (n) DATE, TIME.
SQL Keys and Constraints Justin Maksim. Key Declaration Key constraint defined within the CREATE TABLE command Key can be declared using either the PRIMARY.
SQL DDL constraints Restrictions on the columns and tables 1SQL DDL Constraints.
Structured Query Language. Brief History Developed in early 1970 for relational data model: –Structured English Query Language (SEQUEL) –Implemented with.
SQL Overview Defining a Schema CPSC 315 – Programming Studio Spring 2008 Project 1, Lecture 3 Slides adapted from those used by Jeffrey Ullman, via Jennifer.
Database Management System LICT 3011 Eyad H. Elshami.
Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.
CSC 240 (Blum)1 Data Definition Language Based on Chapter 6 of Database Systems (Connolly and Begg)
DATABASES AND SQL. Introduction Relation: Relation means table(data is arranged in rows and columns) Domain : A domain is a pool of values appearing in.
Your Oracle Account UserName is the same as your UWP username Followed Not case sensitive Initial Password: UWPstudent Password is case sensitive.
1 CSE 480: Database Systems Lecture 9: SQL-DDL Reference: Read Chapter of the textbook.
DBMS 3. course. Reminder Data independence: logical and physical Concurrent processing – Transaction – Deadlock – Rollback – Logging ER Diagrams.
Copyright © Curt Hill SQL The Data Definition Language.
CSE314 Database Systems Lecture 4 Basic SQL Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson Ed Slide Set.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor Ms. Arwa.
BASIC SQL CHAPTER 4 (6/E) CHAPTER 8 (5/E) 1. LECTURE OUTLINE  SQL Data Definition and Data Types  Specifying Constraints in SQL  Basic Retrieval Queries.
SQL Data Definition (CB Chapter 6) CPSC 356 Database Ellen Walker Hiram College (Includes figures from Database Systems by Connolly & Begg, © Addison Wesley.
SQL data definition using Oracle1 SQL Data Definition using Oracle.
Structured Query Language. Brief History Developed in early 1970 for relational data model: –Structured English Query Language (SEQUEL) –Implemented with.
CHAPTER:14 Simple Queries in SQL Prepared By Prepared By : VINAY ALEXANDER ( विनय अलेक्सजेंड़र ) PGT(CS),KV JHAGRAKHAND.
1 The Relational Model Instructor: Mohamed Eltabakh
Chapter 8 Part 1 SQL-99 Schema Definition, Constraints, Queries, and Views.
Ms. Hatoon Al-Sagri CCIS – IS Department SQL-99 :Schema Definition, Constraints, Queries, and Views 1.
Chapter 7 SQL HUANG XUEHUA. SQL SQL server2005 introduction Install components  management studio.
SQL data definition using Oracle1 SQL Data Definition using Oracle.
CSC 2720 Building Web Applications Database and SQL.
-Software School of Hunan University-
SQL SQL Server : Overview SQL : Overview Types of SQL Database : Creation Tables : Creation & Manipulation Data : Creation & Manipulation Data : Retrieving.
SQL: DDL John Ortiz Cs.utsa.edu.
ICS 321 Fall 2011 Constraints, Triggers, Views & Indexes Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa.
SQL: DDL. SQL Statements DDL - data definition language –Defining and modifying data structures (metadata): database, tables, views, etc. DML - data manipulation.
SCUHolliday - coen 1788–1 Schedule Today u Modifications, Schemas, Views. u Read Sections (except and 6.6.6) Next u Constraints. u Read.
SQL Basics. What is SQL? SQL stands for Structured Query Language. SQL lets you access and manipulate databases.
CS3431-B111 The Relational Model Instructor: Mohamed Eltabakh
Dec 8, 2003Murali Mani Constraints B term 2004: lecture 15.
Prince Sultan University Dept. of Computer & Information Sciences CS 340 Introduction to Database Systems.
Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.
CMPT 258 Database Systems The Relationship Model (Chapter 3)
Week 8-9 SQL-1. SQL Components: DDL, DCL, & DML SQL is a very large and powerful language, but every type of SQL statement falls within one of three main.
©Silberschatz, Korth and Sudarshan1 Structured Query Language (SQL) Data Definition Language Domains Integrity Constraints.
1 CS 430 Database Theory Winter 2005 Lecture 10: Introduction to SQL.
DBMS 3. course. Reminder Data independence: logical and physical Concurrent processing – Transaction – Deadlock – Rollback – Logging ER Diagrams.
1 CS 430 Database Theory Winter 2005 Lecture 11: SQL DDL.
Physical Model Lecture 11. Physical Data Model The last step is the physical design phase, In this phase data is – Store – Organized and – Access.
CDT/1 Creating data tables and Referential Integrity Objective –To learn about the data constraints supported by SQL2 –To be able to relate tables together.
CENG 351 File Structures and Data Management1 Relational Model Chapter 3.
Managing Tables, Data Integrity, Constraints by Adrienne Watt
מערכות בסיסי נתונים ספרות Database System Concepts/ Korth, Siberschatz
Instructor: Mohamed Eltabakh
עבודה עם נתונים באמצעות ADO.NET
لغة قواعد البيانات STRUCTURED QUERY LANGUAGE SQL))
SQL data definition using Oracle
SQL-1 Week 8-9.
Session - 6 Sequence - 1 SQL: The Structured Query Language:
Chapter # 7 Introduction to Structured Query Language (SQL) Part I.
ISC321 Database Systems I Chapter 4: SQL: Data definition, Constraints, and Basic Queries and Updates Fall 2015 Dr. Abdullah Almutairi.
Instructor: Mohamed Eltabakh
Session - 6 Sequence - 1 SQL: The Structured Query Language:
SQL (Structured Query Language)
Presentation transcript:

1 SQL/DDL

2 רשימת הנושאים  מבוא ל SQL  CREATE  VIEWS  ASSERTIONS  GRANT/REVOKE  Triggers  INDEX

3 SQL: תעודת זהות  Structure Query Language  שפת נתונים המאפשרת גישה וטיפול בנתונים  DDL: Data Definition Language  DML:Data Manipulation Language  האבא IBM, 1970  תקן ANSI: SQL86 (SQL1)  SQL-92  SQL-99

4 CREATE  דוגמא  Data Types  DOMAIN  צורה כללית לפקודת CREATE  Attribute Constraints  Table Constraints  Referential Triggered Action

5 דוגמא

6 הגדרת טבלת CUSTOMER  CREATE TABLE CUSTOMER ) CUS_NUM INTEGER NOT NULL, CUS_LNAME VARCHAR(15) NOT NULL, CUS_FNAME VARCHAR(15) NOT NULL, CUS_INITIAL CHAR(3), CUS_AREACODE CHAR(5), CUS_ PHONE) PHONE, CUS_BALANCE MONEY DEFAULT 0, PRIMARY KEY (CUS_NUM ) )

7 הגדרת טבלת INVOICE  CREATE TABLE INVOICE ) INV_NUMBER INTEGER NOT NULL, CUS_NUM INTEGER NOT NULL, INV_DATE DATE NOT NULL, PRIMARY KEY (INV_NUMBER), FOREIGN KEY (CUS_NUM) REFERENCES CUSTOMER ON DELETE RESTRICT )

8 הגדרת טבלת LINE  CREATE TABLE LINE ) INV_NUMBER INTEGER NOT NULL, LINE_NUMBER SMALLINT NOT NULL, P_CODE INT NOT NULL, LINE_UNITS SMALLINT CHECK(LINE_UNITS>=1), LINE_PRICE MONEY NOT NULL, PRIMARY KEY (INV_NUMBER,LINE_NUMBER), FOREIGN KEY (INV_NUMBER) REFERENCES INVOICE ON DELETE CASCADE FOREIGN KEY (P_CODE) REFERENCES PRODUCT ON DELETE SET NULL )

9 Data Types  INTEGER, INT, SMALLINT,TINYINT  FLOAT, REAL, DOUBLE PRECISION  DECIMAL, DEC, NUMERIC(I, J)  CHAR(n) or CHARACTER(n)  VARCHAR(n), CHAR VARYING(n), CHARACTER VARYING(n)  Boolean  DATE: YYYY-MM-DD  TIME: HH:MM:SS  TIMESTAMP: YYYY-MM-DD HH:MM:SS  BIT(len), BIT VARYING (len)  Image

10 הגדרת DOMAIN  מאפשר הגדרת סוג משתנה על ידי המשתמש  משמש ליצירת אחידות לכל הטבלאות ב DB  מאפשר עדכון ההגדרה במקום אחד בלבד  הצורה הכללית : CREATE DOMAIN domain-name AS type [CHECK(condition)]

11 דוגמאות להגדרת DOMAIN  CREATE DOMAIN PHONE CHAR(10)  CREAT DOMAIN MONEY DECIMAL (11,2)  CREATE DOMAIN WEEK_DAY AS CHAR(2) CHECK(VALUE IN (“SA”,”SU”,”MO”,”TU”, “WE”,”TH”, “FR”) )  CREATE DOMAIN MONTH AS TINYINT CHECK ( MONTH BETWEEN 1 AND 12 )

12 צורה כללית לפקודת CREATE  CREATE TABLE table_name ( Attribute name Attribute type Attribute Constraints,. Table Constraints )

13 Attribute Constraints  NOT NULL/NULL  DEFAULT  CHECK (conditional expression)  UNIQUE

14 דוגמא ל UNIQUE  CREATE TABLE EMPLOYEE ( EMP_NUM INT NOT NULL, EMP_LNAME VARCHAR(20), EMP_FNAME VARCHAR(20), EMP_PASSPORT CHAR(10) UNIQUE EMP_BIRTHDATE DATE, EMP_HIREDATE DATE, PRIMARY KEY(EMP_NUM) )

15 Table Constraints  PRIMARY KEY ( )  FOREIGN KEY REFERENCES  UNIQUE  CHECK ( condition)

16 דוגמא ל CHECK  CREATE TABLE EMPLOYEE ( EMP_NUM INT NOT NULL, EMP_LNAME VARCHAR(20), EMP_FNAME VARCHAR(20), EMP_PASSPORT CHAR(10) UNIQUE EMP_BIRTHDATE DATE, EMP_HIREDATE DATE, PRIMARY KEY(EMP_NUM), CHECK(EMP_HIREDATE > EMP_BIRTHDATE))

17 Referential Triggered Action  FOREIGN KEY REFERENCES ON DELETE CASCADE/SET NULL/ RESTRICT/ SET DEFAULT/NOACTION ON UPDATE CASCADE/SET NULL/ RESTRICT/ SET DEFAULT/NOACTION

18 טבלאות מדומות : VIEWS  טבלה מדומה הינה טבלה, שאינה קיימת באופן ממשי בבסיס הנתונים.  הטבלה נוצרת רק בזמן הפניה אליה ומורכבת מנתונים הנגזרים מטבלה בסיסית אחת או יותר  למעשה בבסיס הנתונים מאחסנים רק את ההגדרה של הטבלה המדומה ולא את הטבלה עצמה  הטבלה המדומה מאפשרת ליצור נקודת מבט מותאמת לתוכנית יישום או למשתמש.  המשתמש לא מכיר את המבנה האמיתי של של בסיס הנתונים ומקבל תחושה שקיימת טבלה המתאימה בדיוק לצרכיו  באמצעות מנגנון זה ניתן לאכוף בקרת גישה ובטיחות

19 מבנה הפקודה CREATE VIEW AS SELECT FROM WHERE

20 ASSERTIONS  מאפשר הגדרת אילוצים על טבלה בודדת או מספר טבלאות  בכל פעם שמתבצע שינוי כלשהו על אחת הטבלאות המעורבות מתבצעת בדיקת האילוץ  היתרון : לא חשוב מהו מספר התוכניות שנוגעות בטבלאות, הבדיקה תתבצע תמיד  החסרון תקורה משמעותית של זמן הבדיקה

21 ASSERTION דוגמא ל

22 ASSERTION דוגמא ל

23 GRANT/REVOKE  מאפשר מתן / ביטול הרשאות גישה לאובייקט  ההרשאות הן ברמה של טבלה  ההרשאות מתייחסות בעיקר לפעולות : שליפה, עדכון, ביטול, הוספה  יש הרשאות מיוחדות למתן אפשרות לבנות אינדקס וכן העברת חלק מהזכויות לאחרים  הצורה הכללית למתן זכויות : GRANT רשימת פעולות ON רשימת טבלות TO רשימת בעלי זכות  הצורה הכללית לביטול זכויות REVOKE / רשימת פעולות ALL ON רשימת טבלות TO רשימת בעלי זכות

24 GRANT דוגמאות הענקת זכות לשליפת נתונים מטבלה GRANT SELECT ON CUSTOMERS TO ADAM הענקת זכות לשליפה ועדכון טבלה למספר משתמשים GRANT SELECT, UPDATE ON CUSTOMERS TO ADAM, SHANI, PAZ הענקת זכות גישה לטבלה לכל המשתמשים GRANT SELECT ON CUSTOMERS TO PUBLIC הענקת כל הזכויות GRANT ALL ON CUSTOMERS TO YEVGENI הענקת זכויות למספר טבלאות : GRANT SELECT, UPDATE ON STUDENTS,COURSES TO LIOR, ALON,NATI,RAVIV,ISRAEL,ILAN

25 דוגמאות REVOKE  REVOKE SELECT ON CUSTOMERS FROM ADAM  REVOKE SELECT, UPDATE ON CUSTOMERS FROM ADAM, SHANI, PAZ  REVOKE SELECT, UPDATE ON STUDENTS,COURSES FROM LIOR,ALON,NATI,RAVIV,ISRAEL,ILAN

26 TRIGGERS  לכל אירוע שגורם לשינוי בטבלה, המשתמש יכול להגדיר פעולה רצויה שתתבצע  האירועים שיכולים להפעיל את ההדק : INSERT, DELETE, UPDATE  בעת הגדרת הדק יש לציין מתי תופעל הפעולה המבוקשת : אחרי ביצוע הפקודה שגרמה להתעוררות ההדק או לפניה  הטיפול בהדק נתון עלול לגרום לתגובת שרשת של מספר רב של הדקים  הטיפול בהדקים נותן כלי חזק מאד לשמירת ה Referential Integrity  כיון ש SQL2 לא הגדיר תחביר תקני להדקים, המצב כיום הוא שהתחביר לניהול הדקים שונה מיצרן ליצרן, עד שכולם יאמצו את SQL3

27 דוגמא ל TRIGGER Increments the number of employees each time a new person is hired; that is, each time a new row is inserted into the EMPLOYEE table : CREATE TRIGGER NEW_HIRED AFTER INSERT ON EMPLOYEE FOR EACH ROW UPDATE COMPANY_STATS SET NBEMP = NBEMP + 1

28 דוגמא ל TRIGGER Create a trigger that will cause an error when an update occurs that would result in a salary increase greater than ten percent of the current salary. CREATE TRIGGER RAISE_LIMIT AFTER UPDATE OF SALARY ON EMPLOYEE REFERENCING NEW AS N OLD AS O FOR EACH ROW WHEN (N.SALARY > 1.1 * O.SALARY) SIGNAL SQLSTATE '75000' ('Salary increase>10%')

29 דוגמא ל TRIGGER If the on-hand quantity is less than 10% of the maximum stocked quantity, then issue a shipping request ordering the number of items for the affected part to be equal to the maximum stocked quantity minus the on-hand quantity CREATE TRIGGER REORDER AFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTS REFERENCING NEW AS N FOR EACH ROW WHEN (N.ON_HAND < 0.10 * N.MAX_STOCKED) BEGIN VALUES(ISSUE_SHIP_REQUEST(N.MAX_STOCKED – N.ON_HAND, N.PARTNO)); END

30 INDEX  האמצעי העיקרי לגישה מהירה לשורות בטבלה במודל הטבלאי  המערכת בוחרת באופן אוטומטי אם להשתמש באינדקס ובאיזה אינדקס מאלה שהוגדרו  מנהל הנתונים יכול להוסיף או לבטל אינדקס בכל נקודת זמן (DROP)  הוספת אינדקס מגדילה את נפח האחסון הדרוש ל DB  הוספת אינדקס מגדילה את הזמן הנדרש לביצוע הוספה / עדכון  קיום האינדקס שקוף למשתמש

31 INDEX דוגמאות  בנה אינדקס למספר מחלקה בטבלת קורסים  CREATE INDEX DEPART_COURSE_IDX ON COURSES (DEPARTMENT_ID)  ביטול האינדקס  DROP DEPART_COURSE_IDX

32 INDEX דוגמאות  בנה אינדקס למיקוד בטבלת לקוחות  CREATE INDEX AREA_CODE_IDX ON CUSTOMER (CUS_AREACODE )

33 Questions ? P2080