Программирование >>  Реляционные базы данных 

1 ... 75 76 77 [ 78 ] 79 80 81 ... 125


7 Число 2s5 ие основано ни на каком таинственном понятии типичного адреса. Елннственный байт может содержать числа от О до 255, поэтому строку переменной дпнны до 255 симво.пов можно представить с помошью сдинстпенного баИта дчя подсчета символов и байтов дпя хранения самой строки. В коммерческих системах допустимы CTPoiH большей переменной длины.

Например. DECIMAL(n,cl) допускает значения, состоящие нз десятичных цифр с десятичной точкой, стоящей после d-U цифры при отсчете справа. Так, 0123.45 -это возможное значение ттша DECIMAL(6,2).

5. Даты и время представимы типами данных DATE и TIME соответственно. Вспомните обсуждение дат и времени в разделе 5.1.4. Эти значения, по с\щест у, явпяются строками особой формы. Фактически даты и время можно сделать THnaNm строки и наоборот, еслн строка имеет с>(ысл в качестве даты или времени.

5-7-2 Простые описания таблиц

Простейшая форма описания реляиионной схемы состоит из ключевых слов CREATE TABLE, за когорымн следуют имя отиошения и заключенный в скобки список имен атрибутов и их типов.

Пример 5.32. Реляционную схему для примера отношения MovieStar, неформально описанную в разделе 3.9, можно построить в в ше таблицы SQL с помощью предложения из рис. 5 13. Первые два атрибута - паше и address - объявляются строками символов. Для представления имени используется строка фиксированной ДГ1И11Ы в 30 символов, при необходимости в конце ее применяются пробелы и сокращается имя, если длина его превышает 30 символов. Адреса описываются строкой переменной длины до 255 символов. Неясно, чем такие способы представления имен н адресов лучше других, но мы выбрали их, чтобы показать два различных типа строковых данных.

1) CREATE TABLE MovieStar (

2) name CHAR(30)

3) address VARCHAR(255),

4) gender CHAR(1)

5) birtlidate DATE

Рис. 5.13. Описоние реляционной аемы дпв отношения MovieStar

Значениями атрнбута gender являются единичные буквы М или F, поэтому в качестве его типа можно использовать единственный символ. И наконец, атрибуту birthdate вполне естественно приписать rvm данных DATE. Если он недоступен в системе, не удовлетворяющей стандарту SQL2, можно использовать CHAR(10), поскольку все значения DATE это строки, состоящие из 10 символов: Бocьмl Ш1фр II двух дефисов. □

5.7.3 Удаление таблиц

Отношение, созданное как часть существующей долгое время БД, обычно строится один раз, а затем пополняется кортежами в течение ряда лет. Его можно загрузить из внешней памяти путем перевода данных, существующих в форме, отличающейся от таблицы SQL, в последовательность команд ввода; такую возможность обеспечивает, в частности, DBMS. Отношение может расширяться



5>7.5 Значения no умолчанию

Соадавая или изменяя кортежи, мы иногда не знаем значений всех их компонентов. Например, выше было сказано, что при добавлении столбца к реляционной схеме значения существующих кортежей неизвестны и вместо реального значения применяется NULL. В примере 5.28 мы вводили новые кортежи в отношение Studio, зная при этом только название студии, но не ее адрес или номер сертификата ее президента. В этом случае вместо значений последних двух атрибутов тоже используется значение типа я не знаю .

В SQL есть значение NULL. Оно применяется в любом компоненте, которому не приписано конкретное значение, за исключением случаев, в которых его использование запрещено (см. раздел 6.2). Однако иногда предпочтительнее применять другое значение т уматанию, которое вносится в компонент, еспи все другие значения неизвестны.

с течением времени, накапливая кортежи. Например, отношение Movie может быть загружено из какой-то ранее существовавшей БД, а затек оно обновляется с помощью onepauHii INSERT при выпуске каждого нового фильма.

В некоторых случаях отношение нужно удалить из схемы БД. При изменении обстоятельств информация, хранящаяся в таблице, может стать ненужной. Отношение может также бьггь временным и сушествовать, например, в виде промежуточного результата какого-то сложного запроса, который невозможно выразить одним предложением SQL. В таких случаях отношение R можно удалить с помощью предложения

DROP R;

5.7.4 Изменение реляционных схем

Изменять схему существующего отношения приходится гораздо чаше, чем удалять его из долговременной БД. Такие изменения производятся с помощью предложения, которое начинается с ключевых слов ALTER TABLE и имени отношения, а в остальной части можно использовать различные варианты. Самыми важными из них являются следующие:

1. ADD и далее следует имя столбца и его тип.

2. DROP и далее следует имя столбца.

Пример 5.33. Отношение l\flovieStar можно изменить, добавив в него атрибут phone с помощью предложения

ALTER TABLE MovieStar ADD phone GHAR(16);

В результате в схеме MovieStar становится пять атрибутов; четыре из них перечислены на рис. 5.13, а пятый, phone, является строкой фиксированной длины в 1б байт. В реальном отношении все кортежи имеют компоненты для phone, но неизвестны номера телефонов, которые нужно в них вносить Поэтому каждый такой компонент имеет значение NULL. В разделе 5.7.5 будет показано, как вместо NULL применяется другое значение гю умолчанию .

В качестве примера другого изменения из MovieStar можно удалить атрибут birthdate с помощью предложения

ALTER TABLE MovieStar DROP birthdate; □



В общем случае п любое место описания атрибута и его типа данных можно добавить ключевое слово DEFAULT и подходящее значение. Обычно Это NULL или константа, но допустимы и другие значения, имеющиеся в системе, например текуиюе время.

Пример 5.34. Рассмотрим пример 5.32. Допустим, мы хотим использовать символ ? в качестве значения по умолчанию для неизвестного атрибута gender и самую раннюю из возможных дат, DATE ОООО-ОО-ОО, вместо неизвестного атрибуга birthdate. Тогда строки (4) и (5) рис. 5.13 заменяются на

4) gender CHAR(1) DEFAULT ?.

5) birthdate DATE DEFAULT DATE 0000-00-00

В качестве другого примера при добавлении атрибута phone (см. пример 5.33) можно установить для него значение по умолчанию unlisted*. В результате [голуча-ется следующее предложение изменения:

ALTER TABLE MovieStar ADD phone CHAR(16) DEFAULT unlisted; □

5.7-6 Области значений

До сих nop для каждого атрибута мы определяли тип данных. Вместо этого можно определять область значения. Для нее можно также описать различную информапию типа значений по умолчанию или ограничений на значения, о когорых пойдет речь в разделе 6.3.3, Тогда при описании атрибута за его именем ставится не тип данных, а имя области. Множество атрибугов может использовать одну и ту же область, связывающую эти атрибуты каким-нибудь полезным образом. Например, если два атрибута имеют одну и ту же область, значение одного из них всегда может быть значением другого.

Определение области значений сосгоит из ключевых слов CREATE DOMAIN, имени области, ключевого слова AS и типа данных:

CREATE DOMAIN <имя> AS <описание типа>;

Далее могт следовать значения по умолчанию и другие ограничения области, когорые будут рассмотрены в разделе 6.3.3.

Пример S.3S. Опреде.1гим область MovleDomain для названий фильмов. Ее можно исгюльзовать для атрибутов title из отношения Movie и movieTtle из оп-шшения Starsln. Определение области:

CREATE DOMAIN MovieDomain AS VARCHAR(5C) DEFAULT unknown;

Здесь значениями области являются строка персментюй длины до 50 символов и неизвестное название unknown.

При описании схе.мы отношения Movie атрибзт title можно записать как

title MovieDomain

вместо

title VARCHAR(50) DEFAULTunknown Аналогичным способом можно описать и атрибут movieTitle из отношения Starsln: movieTitle MovieDomain D



1 ... 75 76 77 [ 78 ] 79 80 81 ... 125

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика