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
Достарыңызбен бөлісу: