Изучаем sql



Pdf көрінісі
бет226/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   222   223   224   225   226   227   228   229   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )


Глава 13. Индексы и ограничения
ка удаляется в родительской таблице, соответствующие ей строки уда
ляются и в дочерней таблице. Для задания каскадного удаления ис
пользуется блок 
on
delete
cascade
:
ALTER TABLE product
ADD CONSTRAINT fk_product_type_cd FOREIGN KEY (product_type_cd)
REFERENCES product_type (product_type_cd)
ON UPDATE CASCADE
ON DELETE CASCADE;
Теперь при таком варианте ограничения сервер будет обновлять дочер
ние строки таблицы 
product
при обновлении строки в таблице 
pro
duct_type
, а также удалять дочерние строки таблицы 
product
при удале
нии строки таблицы 
product_type
.
Каскадные ограничения – один из случаев, когда ограничения 
непо
средственно 
влияют на код, который вы пишете. Чтобы полностью
представлять эффект применения выражений 
update
и 
delete
, необхо
димо знать, для каких ограничений базы данных заданы каскадные
обновления и/или удаления.


ERдиаграмма примера базы данных
На рис. А.1 представлена диаграмма сущностей и связей (entityrelati
onship, ER) базы данных, используемой в этой книге в качестве приме
ра. Как следует из названия, диаграмма отображает сущности, или
таблицы, базы данных и связи внешнего ключа между таблицами. Вот
несколько подсказок, которые помогут понять условные обозначения:

Каждый прямоугольник представляет таблицу. Имя таблицы ука
зано в верхнем левом углу прямоугольника. Столбец (или столбцы)
первичного ключа указан первым и отделен от обычных столбцов
линией. Обычные столбцы перечислены под линией, столбцы внеш
него ключа отмечены как «(FK)».

Линиями между таблицами представлены связи внешнего ключа.
Отметки на концах линий показывают допустимую кратность свя
зи, которая может иметь значения нуль (0), один (1) или много ( ).
Например, взглянув на связь между таблицами 
account
и 
product
,
можно сказать, что счет должен относиться только к одной услуге,
но для одной услуги может быть нуль, один или много счетов.
Более подробно моделирование баз данных и соответствующие инстру
менты рассмотрены в приложении D.


258
Приложение A. ERCдиаграмма примера базы данных
branch
branch_id:smallint unsigned
name:varchar(20)
address:varchar(30)
city:varchar(20)
state:varchar(2)
zip:varchar(12)
department
dept_id:smallint unsigned
name:varchar(20)
product_type
product_type_cd:varchar(10)
name:varchar(50)
officer
officer_id:smallint unsigned
cust_id:integer unsigned (FK)
fname:varchar(30)
lname:varchar(30)
title:varchar(20)
start_date:date
end_date:date
product
product_cd:varchar(10)
name:varchar(50)
product_type_cd:varchar(10) (FK)
date_offered:date
date_retired:date
employee
emp_id:smallint unsigned
fname:varchar(20)
lname:varchar(20)
start_date:date
end_date:date
superior_emp_id:smallint unsigned (FK)
dept_id:smallint unsigned (FK)
title: varchar(20)
assigned_branch_id:smallint unsigned (FK)
account
account_id:integer unsigned
product_cd:varchar(10) (FK)
cust_id:integer unsigned (FK)
open_date:date
close_date:date
last_activity_date:date
status:varchar(10)
open_branch_id:smallint unsigned (FK)
open_emp_id:smallint unsigned (FK)
avail_balance:float(10,2)
pending_balance:float(10,2)
transaction
txn_id: integer unsigned
txn_date:datetime
account_id:integer unsigned (FK)
txn_type_cd:varchar(10)
amount:double(10,2)
teller_emp_id:smallint unsigned (FK)
execution_branch_id:smallint unsigned (FK)
funds_avail_date:datetime
customer
cust_id:integer unsigned
fed_id:varchar(12)
cust_type_cd:char(2)
address:varchar(30)
city:varchar(20)
state:varchar(20)
postal_code:varchar(10)
business
cust_id:integer unsigned (FK)
name:varchar(40)
state_id:varchar(10)
incorp_date:date
individual
cust_id:integer unsigned (FK)
fname:varchar(30)
lname:varchar(30)
birth_date:date


Достарыңызбен бөлісу:
1   ...   222   223   224   225   226   227   228   229   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет