Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi

Similar documents
Using DDL Statements to Create and Manage Tables. Copyright 2004, Oracle. All rights reserved.

Using DDL Statements to Create and Manage Tables. Copyright 2004, Oracle. All rights reserved.

Database Foundations. 6-3 Data Definition Language (DDL) Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Using DDL Statements to Create and Manage Tables. Copyright 2006, Oracle. All rights reserved.

DATA CONSTRAINT. Prepared By: Dr. Vipul Vekariya

VRIJEDNOSTI ATRIBUTA

Database Foundations. 6-4 Data Manipulation Language (DML) Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Jezik Baze Podataka SQL. Jennifer Widom

Oracle Database 10g: SQL Fundamentals I. Oracle Internal & Oracle Academy Use Only. Student Guide Volume 2. D17108GC30 Edition 3.0 January 2009 D57871

Manipulating Data. Copyright 2004, Oracle. All rights reserved.

Ime ograničenja je clients_client_num_pk. Ono inforsira biznis pravila po kojem client_number je PK u clients tabeli Naming Constraints

Oracle Database SQL Basics

Lecture7: SQL Overview, Oracle Data Type, DDL and Constraints Part #2

Data Manipulation Language

King Fahd University of Petroleum and Minerals

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)

Série n 6 Bis : Ateliers SQL Data Modeler (Oracle)

Retrieving Data Using the SQL SELECT Statement. Copyright 2009, Oracle. All rights reserved.

CS2 Current Technologies Lecture 3: SQL - Joins and Subqueries

CS2 Current Technologies Note 1 CS2Bh

Appendix A Practices and Solutions

Creating and Managing Tables Schedule: Timing Topic

Táblák tartalmának módosítása. Copyright 2004, Oracle. All rights reserved.

GIFT Department of Computing Science Data Selection and Filtering using the SELECT Statement

Retrieving Data Using the SQL SELECT Statement. Copyright 2004, Oracle. All rights reserved.

Database Management System. * First install Mysql Database or Wamp Server which contains Mysql Databse.

Exam: 1Z Title : Introduction to Oracle9i: SQL. Ver :

Lecture7: SQL Overview, Oracle Data Type, DDL and Constraints Part #2

CREATE DATABASE naziv-baze-podataka [IN naziv-dbspace]

HR Database. Sample Output from TechWriter 2007 for Databases

Database Programming - Section 10. Instructor Guide

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

CS2 Current Technologies Lecture 2: SQL Programming Basics

Bsc (Hons) Software Engineering. Examinations for / Semester 1. Resit Examinations for BSE/15A/FT & BSE/16A/FT

2. What privilege should a user be given to create tables? The CREATE TABLE privilege

SQL Structured Query Language Introduction

Exam : 1Z Title : Introduction to Oracle9i: SQL

Introduction. Introduction to Oracle: SQL and PL/SQL

다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저

GIFT Department of Computing Science. CS-217/224: Database Systems. Lab-5 Manual. Displaying Data from Multiple Tables - SQL Joins

Database Programming with SQL

1z Exam Code: 1z Exam Name: Oracle Database SQL Expert

Create Rank Transformation in Informatica with example

SQL Rukovanje podacima

ÇALIŞMA TEST SORULARI


Real-World Performance Training SQL Introduction

RETRIEVING DATA USING THE SQL SELECT STATEMENT

Informatics Practices (065) Sample Question Paper 1 Section A

Assignment Grading Rubric

q Ø v v v v v v v v IBM - 2

Programming Languages

Database implementation Further SQL

1z0-071.exam.95q 1z0-071 Oracle Database 12c SQL

Retrieving Data Using the SQL SELECT Statement. Copyright 2004, Oracle. All rights reserved.

Uvod u relacione baze podataka

1Z0-007 ineroduction to oracle9l:sql

What are temporary tables? When are they useful?

CHAPTER4 CONSTRAINTS

relacionim bazama podataka (1)

Baze podataka SQL Jezik relacione BP

Part III. Data Modelling. Marc H. Scholl (DBIS, Uni KN) Information Management Winter 2007/08 1

Oracle 1Z0-007 Introduction to Oracle9i: SQL 210 Q&A

SYSTEM CODE COURSE NAME DESCRIPTION SEM

Databases. Relational Model, Algebra and operations. How do we model and manipulate complex data structures inside a computer system? Until

Restricting and Sorting Data. Copyright 2004, Oracle. All rights reserved.

Additional Practice Solutions

Objectives. After completing this lesson, you should be able to do the following:

Introduction to Relational Database Concepts. Copyright 2011, Oracle. All rights reserved.

Vendor: Oracle. Exam Code: 1Z Exam Name: Oracle Database: SQL Fundamentals I. Q&As: 292

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

Fravo.com. Certification Made Easy. World No1 Cert Guides. Introduction to Oracle9i: SQL Exam 1Z Edition 1.0

Vendor: Oracle. Exam Code: 1Z Exam Name: Oracle Database SQL Expert. Version: Demo

Databases - 4. Other relational operations and DDL. How to write RA expressions for dummies

A <column constraint> is a constraint that applies to a single column.

DEFAULT Values, MERGE, and Multi-Table Inserts. Copyright 2009, Oracle. All rights reserved.

Indexes (continued) Customer table with record numbers. Source: Concepts of Database Management

Course Overview. Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Databases IIB: DBMS-Implementation Exercise Sheet 13

@vmahawar. Agenda Topics Quiz Useful Links

IT360: Applied Database Systems. SQL: Structured Query Language DDL and DML (w/o SELECT) (Chapter 7 in Kroenke) SQL: Data Definition Language

Data Definition Language (DDL)

Database Programming with SQL

[] znači opciono; znači ili. Strana 3 od 5

Department of Computer Science and Information Systems, College of Business and Technology, Morehead State University

Creating Other Schema Objects. Copyright 2004, Oracle. All rights reserved.

Intermediate SQL: Aggregated Data, Joins and Set Operators

CS2300: File Structures and Introduction to Database Systems

School of Computing and Information Technology Session: Spring CSCI835 Database Systems (Bridging Subject) Sample class test 23 July 2018

BAZE PODATAKA. SQL Opis podataka. Neđeljko Lekić Irena Orović

Informacioni sistemi i baze podataka

Introduction to Oracle9i: SQL

Table : Purchase. Field DataType Size Constraints CustID CHAR 5 Primary key CustName Varchar 30 ItemName Varchar 30 PurchaseDate Date

IBM A Assessment: DB2 9 Fundamentals-Assessment. Download Full Version :

Displaying Data from Multiple Tables. Copyright 2004, Oracle. All rights reserved.

Oracle 1Z0-047 Exam Questions & Answers

EXISTS NOT EXISTS WITH

Oracle MOOC: SQL Fundamentals

Retrieving Data from Multiple Tables

5 Integrity Constraints and Triggers

Transcription:

Ograničenja

Ciljevi Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi Generisati i održavati ograničenja u bazi podataka

Uvod Šta su ograničenja (eng. constraints)? Nametnuta pravila za tabele Pravila koja onemogućavaju brisanje tabela ako postoje zavisnosti Prvila koja onemogućavaju ažuriranje vrijednosti podataka u kolonama ako nad njima postoje definisani referencijalni integriteti Postoje sljedeći tipovi ograničenja nad kolonama tabele: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK

Ograničena ORACLE Imena ograničenja, ako se automatski generišu, imenuju se u formatu SYS_Cn gdje je n redni broj ograničenja Kreiranje ograničenja se generiše: Kada se kreira tabela ili Nakon kreiranja tabele nepostrednim korištenjem komante ALTER TABLE ADD CONSTRAINT Ograničenja se definišu na nivou kolone ili tabele Sva ograničenja (eng. constraints) se zapisuju u šemi baze podataka, a vidljivi su putem Data Dictionary-a

Definisanje ograničenja CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint],... [table_constraint][,...]); CREATE TABLE emp( empno NUMBER(4), ename VARCHAR2(10),... deptno NUMBER(2) NOT NULL, CONSTRAINT emp_empno_pk PRIMARY KEY (EMPNO));

Definisanje ograničenja Ograničenje na nivou kolone column [CONSTRAINT constraint_name] constraint_type, Ograničenje na nivou tabele column,... [CONSTRAINT constraint_name] constraint_type (column,...),

NOT NULL ograničenja SQL> CREATE TABLE employees 2 (employee_id NUMBER(6,0) NOT NULL, 3 first_name VARCHAR2(20), 4 last_name VARCHAR2(25) NOT NULL, 5 email VARCHAR2(25) NOT NULL, 6 phone_number VARCHAR2(20), 7 hire_date DATE NOT NULL, 8 job_id VARCHAR2(10) NOT NULL, 9 salary NUMBER(8,2), 10 commission_pct NUMBER(2,2), 11 manager_id NUMBER(6,0), 12 department_id NUMBER(4,0)); EMPLOYEE_ID LAST_NAME HIRE_DATE MANAGER_ID DEPARTMENT_ID 198 OConnell 21-Jun-1999 124 50 100 King 17-Jun-1987 90 110 Chen 28-Sep-1997 108 100 117 Tobias 24-Jul-1997 114 30 178 Grant 24-May-1999 149 NOT NULL NOT NULL NOT NULL DOZVOLJENE SU NULL VRIJEDNOSTI

NOT NULL ograničenja SQL> CREATE TABLE emp( employee_id NUMBER(6), 2 last_name VARCHAR2(25) NOT NULL, 3 salary NUMBER(8,2), 4 commission_pct NUMBER(2,2), 5 hire_date DATE 6 CONSTRAINT emp_hire_date_nn NOT NULL,... Kolona last_name hire_date Ograničenje SYS_C007357 EMP_HIREDATE_NN Sistemski dodijeljen naziv ograničenja Eksplicitno dodijeljen naziv ograničenja

UNIQUE ograničenje SQL> CREATE TABLE dept( department_id NUMBER(6), 2 department_name VARCHAR2(25) UNIQUE, 3 location_id NUMBER(4,0), 3 manager_id NUMBER(6,0) 4 CONSTRAINT dept_manid_uq UNIQUE, 5... Kolona department_name Ograničenje SYS_C007361 manager_id DEPT_MANID_UQ Sistemski dodijeljen naziv ograničenja Eksplicitno dodijeljen naziv ograničenja Department_id Department_name Location_id Manager_id 10 Administration 1700 200 60 IT 1400 103 90 Executive 1700 100 Insert novog sloga 120 Prodaja 1700 100

PRIMARY KEY ograničenje Dozvoljeno je definisanje primarnog ključa ili na novou tabele ili na nivou kolone SQL> CREATE TABLE dept( 2 deptno NUMBER(2), 3 dname VARCHAR2(14), 4 loc VARCHAR2(13), 5 CONSTRAINT dept_dname_uk UNIQUE (dname), 6 CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno)); SQL> CREATE TABLE emp( 2 empno NUMBER(6,0) PRIMARY KEY, 3 ename VARCHAR2(14), 4 job VARCHAR2(30),...

FOREIGN KEY ograničenje DEPT PRIMARY KEY DEPTNO DNAME LOC 10 Administration New York 20 Sales Dallas PRIMARY KEY... FOREIGN KEY EMP EMPNO ENAME JOB... DEPTNO 100 King Steven President 10 198 OConnell Donald Finance Manager 50... INSERT INTO EMP EMPNO ENAME JOB... DEPTNO 300 King Nubelix Manager 12 300 King Nubelix Manager 50 Insert nije dozvoljen deptno = 12 ne postoji Dozvoljen insert

FOREIGN KEY ograničenje FOREIGN KEY ograničenje moguće je definisati na nivou tabele ili na nivou kolone SQL> CREATE TABLE emp( 2 empno NUMBER(4), 3 ename VARCHAR2(10) NOT NULL, 4 job VARCHAR2(9), 5 mgr NUMBER(4), 6 hiredate DATE, 7 sal NUMBER(7,2), 8 comm NUMBER(7,2), 9 deptno NUMBER(7,2) NOT NULL, 10 CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno) 11 REFERENCES dept (deptno)); FOREIGN KEY određuje kolonu u podređenoj tabeli na nivou ograničenja tabele REFERENCES određuje kolonu u nadređenoj tabeli ON DELETE CASCADE omogućava brisanje redova u nadređenoj tabeli i svih zavisnih redova (slogova) u podređenoj tabeli

CHECK ograničenje Definiše uslov koji svaki red mora zadovoljavati Izrazi koji nisu dozvoljeni: Referenciranje na: CURRVAL, NEXTVAL, LEVEL i ROWNUM pseoudo kolone Poziv na SYSDATE, UID, USER funkcije Upite koji se odnose na vrijednosti iz drugih redova..., deptno NUMBER(2), CONSTRAINT emp_deptno_ck CHECK (DEPTNO BETWEEN 10 AND 99),...

Dodavanje ograničenja Dozvoljeno je dodavanje ili brisanje, ali ne i modifikovanje ograničenja Omogućavanje ili onemogućavanje ograničenja Dodavanje NOT NULL ograničenja putem MODIFY klauzule ALTER TABLE table ADD [CONSTRAINT constraint] type (column);

Dodavanje ograničenja SQL> ALTER TABLE emp 2 ADD CONSTRAINT emp_mgr_fk 3 FOREIGN KEY(mgr) REFERENCES emp(empno); Table altered. Dodavanje ograničenja nad tabelom emp i kolonom mgr (manager) inicira da zaposleni mora već postojati u tabeli emp da bi bilo moguće popuniti ovu kolonu sa nekom od dozvoljenih vrijednosti.

Brisanje ograničenja Brisanje ograničenja za manager-a iz tabele emp SQL> ALTER TABLE emp 2 DROP CONSTRAINT emp_mgr_fk; Table altered. Brisanje primarnog ključa nad tabelom DEPT i svi foreign key-a u tabeli EMP nad kolonom DEPTNO (tj. EMP.DEPTO) SQL> ALTER TABLE dept 2 DROP PRIMARY KEY CASCADE; Table altered.

Deaktiviranje i aktiviranje ograničenja Izvršenjem DISABLE klauzule ALTER TABLE iskaza deaktivira se integritet ograničenja Prihvatanjem CASCADE opcije onemogućava se zavisnost cjelokupnog ograničenja SQL> ALTER TABLE emp 2 DISABLE CONSTRAINT emp_empno_pk CASCADE; Table altered. Izvršenjem ENABLE klauzule ALTER TABLE iskaza aktivira se integritet ograničenja UNIQUE i PRIMARY KEY indeksi se automatski kreiraju kada se aktiviraju UNIQUE i PRIMARY KEY ograničenja SQL> ALTER TABLE emp 2 ENABLE CONSTRAINT emp_empno_pk; Table altered.

Kaskadno ograničenje Klauzula CASCADE CONSTRAINTS se koristi zajedno s klauzulom DROP COLUMN CASCADE CONSTRAINTS klauzula briše sva referencijalna ograničenja koja se odnose na PRIMARY KEY i UNIQUE KEY definisane nad kolonom koja se briše CASCADE CONSTRAINTS klauzula takođe briše sva ograničenja definisana nad više kolona kada se briše bar jedna kolona iz ograničenja

Pregled ograničenja Upitom na USER_CONSTRAINTS tabelu mogu se vidjeti sva definisana ograničenja SQL> SELECT constraint_name, constraint_type, 2 search_condition 3 FROM user_constraints 4 WHERE table_name = 'EMPLOYEES'; CONSTRAINT_NAME C SEARCH_CONDITION ------------------------ - ------------------------- EMP_LAST_NAME_NN C "LAST_NAME" IS NOT NULL EMP_HIRE_DATE_NN C "HIRE_DATE" IS NOT NULL EMP_EMAIL_UK U EMP_EMPNO_PK P...

Pregled kolona koje imaju pridružena ograničenja Pregled kolona kojima je pridružena ograničenja mogu se vidjeti u tabeli USER_CONS_COLUMNS SQL> SELECT constraint_name, column_name 2 FROM user_cons_columns 3 WHERE table_name = 'EMPLOYEES'; CONSTRAINT_NAME COLUMN_NAME ------------------------- ---------------------- EMP_HIRE_DATE_NN HIRE_DATE EMP_EMAIL_UK EMAIL EMP_EMP_ID_PK EMPLOYEE_ID EMP_MANAGER_FK EMPNO EMP_DEPT_FK DEPARTMENT_ID...

Kratak pregled Tipovi ograničenja koji se mogu definisati nad bazom podataka prilikom kreiranja tabela su: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK USER_CONSTRAINTS i USER_CONS_COLUMNS su tabele preko kojih se mogu vidjeti sve potrebne informacije vezane za definisana ograničenja nad kolonama tabela

Ograničenja