Desain Database Fisik dan Normalisasi
Desain Database Fisik dan Normalisasi
Sehingga desain basis data fisik pada aksesibilitas data, waktu respon, kualitas data,
keamanan, keramahan pengguna, dan faktor desain sistem informasi penting lainnya.
Aktifitas pada
Desain Database
Fisik
Keputusan-keputusan kunci dari Desain
Basis Data Fisik
• Memilih format penyimpanan (disebut tipe data) untuk setiap atribut dari model
data logis. Format dan parameter terkait dipilih untuk memaksimalkan integritas
data dan meminimalkan ruang penyimpanan.
• Memberikan panduan sistem manajemen basis data mengenai cara
mengelompokkan atribut dari model data logis ke dalam catatan fisik. Anda akan
menemukan bahwa meskipun kolom tabel relasional seperti yang ditentukan dalam
desain logis adalah definisi alami untuk konten catatan fisik, ini tidak selalu
membentuk fondasi untuk pengelompokan atribut yang paling diinginkan.
• Memberikan panduan sistem manajemen basis data mengenai bagaimana
menyusun catatan yang berstruktur serupa dalam memori sekunder (terutama hard
disk), menggunakan struktur (disebut organisasi file) sehingga catatan individu dan
kelompok dapat disimpan, diambil, dan diperbarui dengan cepat. Pertimbangan juga
harus diberikan untuk melindungi data dan memulihkan data jika ditemukan
kesalahan.
Keputusan-keputusan kunci dari Desain
Basis Data Fisik
• Memilih struktur (termasuk indeks dan arsitektur database secara
keseluruhan) untuk menyimpan dan menghubungkan file agar
pengambilan data terkait lebih efisien.
• Menyiapkan strategi untuk menangani query terhadap database yang
akan mengoptimalkan kinerja dan memanfaatkan organisasi file dan
indeks yang telah ditentukan. Struktur database yang efisien akan
bermanfaat hanya jika query dan sistem manajemen database yang
menangani query tersebut di-tuning untuk menggunakan struktur
tersebut dengan cerdas.
Sebelum desain database fisik dapat dilakukan,
penting untuk dilakukan memahami :
• Ruang penyimpanan
Jumlah hard space yang dibutuhkan untuk menyimpan data.
• Waktu memproses
Waktu yang dibutuhkan untuk menjalankan kueri dan melakukan
pembaruan.
• Waktu Komunikasi
Waktu yang dibutuhkan untuk memindahkan data antar sistem
Ukuran database ditentukan oleh:
3-16
SQL Defined
• SQL is not a programming language, but rather a data sublanguage.
• SQL is comprised of
• Data definition language (DDL)
• Used to define database structures
• Data manipulation language (DML)
• Data definition and updating
• Data retrieval (Queries)
• Data control language (DCL)
• Grant and revoke database permissions
• Transaction control language (TCL)
• Control transaction behavior
• SQL/Persistent Stored Modules (SQL/PSM)
• Procedural programming capabilities
SQL Data Definition Command
18
Perintah Dasar DDL
Data Dictionary (Kamus
Data)
1. Tipe Numeric
• Tipe data numerik digunakan untuk menyimpan data numeric (angka).
• Ciri utama data numeric adalah suatu data yang memungkinkan untuk dikenai
operasi aritmatika seperti pertambahan, pengurangan, perkalian dan
pembagian.
Basis Data
2
2. Tipe Date dan Time
• Tipe data blob digunakan untuk menyimpan data biner. Tipe ini biasanya
digunakan untuk menyimpan kode-kode biner dari suatu file atau object.
BLOB merupakan singkatan dari Binary Large Object.
1. Membuat Database
Jika database yang akan dibuat sudah ada, maka akan muncul pesan
error. Namun jika ingin otomatis menghapus database yang lama jika
sudah ada, aktifkan option IF NOT EXISTS.
Perintahnya:
2
2. Menampilkan database yang sudah ada
3. Menggunakan database
• Untuk membuat table baru yang terletak pada sebuah basisdata haruslah ditentukan
terlebih dahulu nama kolom/atribut/field-nya serta tipe data kolom tersebut, dan
batasan jangkauan atau ketentuan yang lain data kolom tersebut.
• Kemudian yang tidak kalah pentingnya adalah harus ditentukan kunci datanya (key)
terutama kunci primer (primary key) dan kalau ada bisa dilengkapi dengan kunci tamu
(foreingn key).
Integrity Enhancement Feature
Manufacturer Varchar
38
Referential integrity in SQL- example
Bordoloi
Referential Integrity
Rules
So, for each FK in each table the database designer must specify:
• Whether or not NULLs allowed in the FK
• What should happen to the FK values should the related PK values in
the PK table are deleted or updated
Null Rule Alternatives
• Nulls allowed in foreign key columns (minimum cardinality 0)
• Nulls disallowed in foreign key columns (minimum cardinality 1)
Delete Rule Alternatives
• Delete of primary key cascades to foreign keys
• Delete of primary key nullifies foreign keys
• Delete of primary key is restricted if there are any matching foreign
keys
Update Rule Alternatives
• Update of primary key cascades to foreign keys
• Update of primary key nullifies foreign keys
• Update of primary key is restricted if there are any matching foreign
keys
Rule Alternatives: Meaning
On Delete/Update Cascade:
Any delete/update made to the PK table should be cascaded through to the FK
table.
NOTE:
If a PK value is deleted in the PK table then all the rows in the FK table with
matching FK values are also deleted in entirety.
• If a cascading update or delete causes a constraint violation that cannot be handled by further
cascading operation, the system aborts the transaction. As a result, all the changes caused by the
transaction and its cascading actions are undone.
Entity Integrity
• Primary key dari suatu tabel harus berisi nilai yang unik, dan non-null
untuk setiap barisnya.
• Standard ISO menyediakan clause FOREIGN KEY pada perintah
CREATE dan ALTER TABLE :
PRIMARY KEY(staffNo)
PRIMARY KEY(clientNo, propertyNo)
->(Jika primary Key terdiri dari beberapa kolom)
Keys
• Keys : Minimal set of attributes which uniquely identify an instance of a entity
Many candidate keys choose one to be a primary keys
•Primary Key - a column or a set of columns that uniquely identify each row in a table
Constraint
Constraint type
type Explanation
Explanation
Entity
Entity Integrity
Integrity No
No part
part of
of aa PK
PK can
can be
be NULL
NULL
Referential
Referential Integrity
Integrity AA FK
FK must
must match
match an
an existing
existing PK
PK value
value or
or else
else be
be NULL
NULL
Column
Column Integrity
Integrity AA column
column must
must contain
contain only
only values
values consistent
consistent with
with the
the
defined
defined data
data format
format of
of the
the column
column
User-defined
User-defined Integrity
Integrity The
The data
data stored
stored in
in the
the database
database must
must comply
comply with
with the
the
business
business rules
rules
Keys and Identifiers
• A key on FLIGHT# in FLIGHT-SCHEDULE will force all FLIGHT#’s
to be unique in FLIGHT-SCHEDULE
• Consider the following keys on DEPT-AIRPORT:
FLIGHT-SCHEDULE DEPT-AIRPORT
FLIGHT-SCHEDULE DEPT-AIRPORT
60
Primary Key and Foreign Key
61
Specifying Tuple Constraints
62
• Hanya dapat mempunyai 1 clause PRIMARY KEY untuk setiap table,
tetapi masih dapat memastikan pemasukkan nilai yang unik untuk
beberapa alternate key dengan menggunakan keyword UNIQUE:
UNIQUE(telNo)
Referential Integrity
• Foreign Key adalah kolom atau himpunan kolom yang menghubungkan setiap
baris dalam child table yang berisi Foreign Key dengan baris dari parent table
yang berisi Primary Key yang sesuai/match.
• Integritas referential berarti, jika FK berisi suatu nilai, maka nilai tersebut
harus mengacu kesuatu baris dalam parent table.
• Standard ISO menyediakan pendefinisian untuk FK dengan clause FOREIGN
KEY dalam CREATE dan ALTER TABLE:
FOREIGN KEY(branchNo) REFERENCES Branch
What happens if we change or alter the value of an attribute that is part
of a primary key ?
Aksi yang dilakukan yang berusaha untuk merubah / menghapus (update/delete) nilai
candidate key dalam parent table yang memiliki baris yang sesuai dalam child table
tergantung pada referential action yang ditetapkan dengan subclause ON UPDATE
dan ON DELETE. Terdapat 4 pilihan aksi, yaitu :
• CASCADE, menghapus baris dari parent table dan secara otomatis menghapus
baris yang sesuai dalam child table, jika baris yang dihapus tadi merupakan
candidate key yang digunakan sebagai foreign key pada tabel lainnya, maka
aturan foreign key untuk tabel ini dihilangkan.
• SET NULL, menghapus baris pada parent table dan menetapkan nilai foreign
key dalam child table menjadi NULL. Berlaku jika kolom foreign key mempunyai
qualifier NOT NULL.
• SET DEFAULT, menghapus baris dari parent table dan menetapkan setiap
komponen foreign key dari child table menjadi defaultyang telah ditetapkan.
Berlaku jika kolom foreign key memliki nilai DEFAULT.
• NO ACTION, menolak operasi penghapusan dari parent table. Merupakan
default jika aturan ON DELETE dihilangkan
Contoh
UNIQUE
• Ensures that all values in column are unique
DEFAULT
• Assigns value to attribute when a new row is added to table
CHECK
• Validates data when attribute value is entered
NULL Values
75
DDL Specifying Keys- Primary Key
Example:
CREATE TABLE Studios
(studio_id Number,
name char(20),
city varchar(50),
state char(2),
PRIMARY KEY (studio_id),
UNIQUE (name),
UNIQUE(city, state)
)
76
DDL Specifying Keys- Single and
MultiColumn Keys
• Single column keys can be defined at the column level instead of at
the table level at the end of the field descriptions.
• MultiColumn keys still need to be defined separately at the table
level
Example:
78
DDL Constraints- Disallowing Null Values
Disallowing Null Values:
• Null values entered into a column means that the data in not known.
• These can cause problems in Querying the database.
• Specifying Primary Key automatically prevents null being entered in columns which
specify the primary key
• Not Null clause is used in preventing null values from being entered in a
column.
Example:
CREATE TABLE Studios
( studio_id number PRIMARY KEY,
name char(20) NOT NULL,
city varchar(50) NOT NULL,
state char(2) NOT NULL)
• Null clause can be used to explicitly allow null values in a column also
79
DDL Constraints- Value Constraints
Value Constraints:
• Allows value inserted in the column to be checked condition in the column constraint.
• Check clause is used to create a constraint in SQL
Example:
CREATE TABLE Movies
(movie_title varchar(40) PRIMARY KEY,
studio_id Number,
budget Number check (budget > 50000)
)
• Table level constraints can also be defined using the Constraint keyword
Example:
CREATE TABLE Movies
(movie_title varchar(40) PRIMARY KEY,
studio_id Number,
budget Number check (budget > 50000),
release_date Date,
CONSTRAINT release_date_constraint Check (release_date between ’01-Jan-1980’ and ’31-dec-1989))
• Table level constraints can also be defined using the Constraint keyword
• release_date defaults to the current date, however Null value is enabled in the column which
will need to be added explicitly when data is added.
• Note: Any valid expression can be used while specifying constraints
81
2. Melihat table yang ada pada suatu basisdata
87
Membuat database
CREATE DATABASE IF NOT EXIST COMPANY;
USE COMPANY;
Membuat tabel tabel
CREATE TABLE EMPLOYEE(
Fname VARCHAR(30) NOT NULL,
Minit VARCHAR(30) NOT NULL,
Lname VARCHAR(30) NOT NULL,
SSN CHAR(9) NOT NULL,
Bdate DATE NOT NULL,
Address VARCHAR(100) NOT NULL,
Sex CHAR NOT NULL CHECK (Sex IN(‘M’,’F’)),
Salary INT NOT NULL,
Dno INTEGER DEFAULT 1,
SUPER_SSN CHAR(9),
PRIMARY KEY (SSN),
FOREIGN KEY (Dno) REFERENCES DEPARTMENT (Dnumber)
ON DELETE SET DEFAULT ON UPDATE CASCADE,
FOREIGN KEY (SUPER_SSN) REFERENCES EMPLOYEE (SSN)
ON DELETE SET NULL ON UPDATE CASCADE);
CREATE TABLE DEPARTMENT (
Dname VARCHAR(10) NOT NULL,
Dnumber INTEGER NOT NULL,
MGR_SSN CHAR(9),
Mgr_start_date CHAR(9),
PRIMARY KEY (Dnumber),
UNIQUE (Dname),
FOREIGN KEY (MGR_SSN) REFERENCES EMPLOYEE
ON DELETE SET DEFAULT ON UPDATE CASCADE);
_T
_T
_T