Изучаем sql


Рис. 1.3.  Реляционное представление информации по счетам 18



Pdf көрінісі
бет13/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   9   10   11   12   13   14   15   16   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Рис. 1.3.
 Реляционное представление информации по счетам


18
Глава 1. Немного истории
ставления информации по счетам. Однако, в отличие от жесткой струк
туры иерархической/сетевой моделей, реляционные таблицы можно
использовать поразному (даже так, как разработчики этой базы дан
ных и не представляли себе).
Может показаться излишним хранить одни и те же данные в несколь
ких местах, но реляционная модель использует избыточность данных
очень четко. Например, если таблица 
account
включает столбец для
уникального идентификатора клиента, открывшего счет, это правиль
но, а если включены также его имя и фамилия, то это неправильно. На
пример, если клиент изменяет имя, нужна уверенность, что его имя
хранится только в одном месте базы данных. В противном случае дан
ные могут быть изменены в одном месте, но не изменены в другом, что
приведет к их недостоверности. Правильное решение – хранить эту ин
формацию в таблице 
customer
. В другие таблицы следует включить
только 
cust_id
. Также неправильно располагать в одном столбце не
сколько элементов данных, например в столбец 
name
помещать имя
и фамилию человека или в столбце 
address
указывать улицу, город,
страну и почтовый индекс. Процесс улучшения структуры базы дан
ных с целью обеспечения хранения всех независимых элементов дан
ных только в одном месте (за исключением внешних ключей) называ
ют 
нормализацией 
(
normalization
).
Вернемся к четырем таблицам на рис. 1.3; на первый взгляд может
быть непонятно, как использовать их для поиска транзакций Джорджа
Блейка по его текущему счету. Вопервых, находим уникальный иден
тификатор Джорджа Блейка в таблице 
customer
. Затем строку в таблице
account
, столбец 
cust_id
которой содержит уникальный идентификатор
Джорджа, а столбец 
product_cd
соответствует строке таблицы 
product
,
столбец 
name
которой содержит значение 
"Checking"
. Наконец, в таблице
transaction
находим строки, столбец 
account_id
которых соответствует
уникальному идентификатору из таблицы 
account
. Возможно, все это
кажется сложным, но с помощью языка SQL может быть осуществлено
однойединственной командой, как вы вскоре увидите.


Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   ...   261




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

    Басты бет