Лекция_2 (С.Д. Кузнецов - Презентации лекций)
Описание файла
Файл "Лекция_2" внутри архива находится в папке "С.Д. Кузнецов - Презентации лекций". PDF-файл из архива "С.Д. Кузнецов - Презентации лекций", который расположен в категории "". Всё это находится в предмете "модель данных sql" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Лекция 2. Средства определения базовых таблиц иограничений целостности20.05.2016ВведениеСредства определения, изменения и ликвидациибазовых таблиц определение базовой таблицы определение табличного ограниченияСредства определения и отмены общихограничений целостности определение общих ограничений целостности отмена определения общего ограниченияцелостности немедленная и откладываемая проверкаограниченийЗаключениеДоп. главы баз данных.
Лекция 21Введение (1)20.05.2016Предыдущая лекция посвящалась тому, что (т. е.данные каких типов) может храниться в SQLориентированной базе данныхТеперь следует понять, где хранятся эти данныеКак и в реляционной модели данных, в модели SQLподдерживается единственная родовая структураданных, называемая в данном случае базовойтаблицейВ первом из двух основных разделов лекцииобсуждаются средства языка SQL,предназначенные для определения, измененияопределения и отмены определения базовыхтаблицДоп. главы баз данных. Лекция 22Введение (2)Понятие базовой таблицы родственно понятиюотношения: можно считать, что базовая таблицаобладает заголовком, в котором содержатсяразличаемые имена столбцов и их типы данныхи телом, включающим строки, которые соответствуютзаголовку таблицы20.05.2016заголовок базовой таблицы является множеством ипредставляет собой близкий аналог заголовка отношения,казалось бы, здесь мы имеем аналоги тела отношения икортежейНо коренное отличие базовой таблицы от истинногоотношения состоит в том, что тело таблицы необязательно является множествомСреди строк тела таблицы могут встречаться дубликаты,и в общем случае тело базовой таблицы SQLпредставляет собой мультимножество строкДоп.
главы баз данных. Лекция 23Средства определения, изменения иликвидации базовых таблиц (1)20.05.2016Базовые (реально хранимые в базеданных) таблицы создаются(определяются) с использованиемоператора CREATE TABLEДля изменения определения базовойтаблицы применяется оператор ALTERTABLEУничтожить хранимую таблицу (отменить ееопределение) можно с помощью оператораDROP TABLEДоп. главы баз данных. Лекция 24Средства определения, изменения иликвидации базовых таблиц (2)20.05.2016Хотя внешне операторы CREATE TABLE, ALTERTABLE и DROP TABLE похожи на соответствующиеоператоры определения, изменения определения иотмены определения домена, между ними имеетсяпринципиальное различие Определение домена приводит всего лишь ксозданию некоторых новых описателей, входящихв состав метаданных базы данных Создание базовой таблицы, кроме созданиясоответствующих описателей, порождает новуюобласть внешней памяти, в которой будутхраниться данные, поставляемые пользователямиТем самым, базовая таблица SQL-ориентированнойбазы данных является прямым аналогомпеременной отношения реляционной моделиданныхДоп.
главы баз данных. Лекция 25Средства определения, изменения иликвидации базовых таблиц (3)20.05.2016Определение базовой таблицыОператор создания базовой таблицы CREATETABLE имеет следующий синтаксис:base_table_definition ::= CREATE TABLEbase_table_name (base_table_element_commalist)base_table_element ::=column_definition | base_table_constraint_definitionЗдесь base_table_name задает имя новой(изначально пустой) базовой таблицыКаждый элемент определения базовой таблицыявляется либо определением столбца, либо определением табличного ограниченияцелостностиДоп. главы баз данных. Лекция 26Средства определения, изменения иликвидации базовых таблиц (4)20.05.2016Определение столбцаЭлемент определения столбца специфицируется наоснове следующих синтаксических правил:column_definition ::=column_name { data_type | domain_name }[ default_definition ][ column_constraint_definition_list ]В элементе определения столбца column_nameзадает имя определяемого столбцаТип столбца специфицируется путем явногоуказания типа данных (data_type) или путемуказания имени ранее определенного домена(domain_name)Доп.
главы баз данных. Лекция 27Средства определения, изменения иликвидации базовых таблиц (5)Значения столбца по умолчаниюНеобязательный раздел определения значения столбцапо умолчанию имеет тот же синтаксис, что и разделопределения значения по умолчанию в операторахопределения или изменения определения домена:DEFAULT { literal | niladic_function | NULL }Действующее значение по умолчанию для данногостолбца определяется следующим образом:20.05.2016если в определении столбца явно присутствует разделDEFAULT, то значением столбца по умолчанию являетсязначение, указанное в этом разделе;иначе, если столбец определяется на домене и вопределении этого домена явно присутствует разделDEFAULT, то значением столбца по умолчанию являетсязначение, указанное в этом разделе;иначе значением по умолчанию столбца является NULLДоп.
главы баз данных. Лекция 28Средства определения, изменения иликвидации базовых таблиц (5)Если значением по умолчанию неявнообъявлено неопределенное значение(NULL), но среди ограничений целостностистолбца присутствует ограничение NOTNULL, то считается,20.05.2016что у столбца вообще отсутствует значение поумолчаниюЭто означает, что при любой вставке новойстроки в соответствующую базовую таблицузначение данного столбца должно бытьзадано явноДоп.
главы баз данных. Лекция 29Средства определения, изменения иликвидации базовых таблиц (6)20.05.2016Ограничения целостности столбцаЭлемент необязательного списка ограниченийцелостности столбца определяется следующимисинтаксическими правилами:column_constraint_definition ::=[ CONSTRAINT constraint_name ]NOT NULL |{ PRIMARY KEY | UNIQUE } |references_definition |CHECK ( conditional_expression )Любое ограничение целостности на уровне столбцаможет быть эквивалентным образом выражено в видетабличного ограничения целостностиЕдинственный резон определения ограничений науровне столбца состоит в том, что в этом случае вограничении целостности не требуется явно указыватьимя столбцаДоп.
главы баз данных. Лекция 210Средства определения, изменения иликвидации базовых таблиц (7)20.05.2016Ограничение NOT NULL означает, что вопределяемом столбце никогда не должнысодержаться неопределенные значенияЕсли определяемый столбец имеет имя C,то это ограничение эквивалентноследующему табличному ограничению:CHECK (C IS NOT NULL)Доп. главы баз данных. Лекция 211Средства определения, изменения иликвидации базовых таблиц (8)В определение столбца может входить одно из ограничений:ограничение первичного ключа (PRIMARY KEY) или ограничениевозможного ключа (UNIQUE)Включение в определение столбца любого из этих ограниченийозначает требование уникальности значений определяемогостолбцаОграничение PRIMARY KEY, в дополнение к этому, влечетограничение NOT NULL для определяемого столбцаЭти ограничения столбца эквивалентны следующим табличнымограничениям: PRIMARY KEY (C) и UNIQUE (С)В случае UNIQUE SQL опирается на семантику неопределенныхзначений, отличную от семантики, используемой в большинстведругих случаев20.05.2016т.е.
во все время существования определяемой таблицы во всех еестроках значения данного столбца должны быть различныздесь считается, что (NULL = NULL) = true и что (a = NULL) = (NULL= a) = false для любого значения a, отличного от NULLДоп. главы баз данных. Лекция 212Средства определения, изменения иликвидации базовых таблиц (9)Ограничение references_definition означаетобъявление определяемого столбца внешнимключом таблицы и обладает следующимсинтаксисом:references_definition ::=REFERENCES base_table_name [column_commalist) ][ MATCH { SIMPLE | FULL | PARTIAL } ][ ON DELETE referential_action ][ ON UPDATE referential_action ]20.05.2016Эта синтаксическая конструкция работает и вслучае определения внешнего ключа на уровнетаблицы в одном из определений табличных ограниченийцелостностиДоп.
главы баз данных. Лекция 213Средства определения, изменения иликвидации базовых таблиц (10)Отложим обсуждение до рассмотренияэтого общего случаяЗаметим только то, что при использованииконструкции на уровне определениястолбца column_commalist может содержатьимя только одного столбца20.05.2016потому что внешний ключ состоит из одногоопределяемого столбцаОграничение эквивалентно следующемутабличному ограничению:FOREGN KEY ( C ) references_definitionДоп. главы баз данных. Лекция 214Средства определения, изменения иликвидации базовых таблиц (11)20.05.2016Определение проверочного ограничения CHECK (conditional_expression)приводит к тому, что в данном столбце могутнаходиться только те значения, для которыхвычисление conditional_expression приводит крезультату trueВ условном выражении проверочного ограничениястолбца разрешается использовать имя толькоопределяемого столбцаПроверочное ограничение столбца может быть безвсяких изменений перенесено на уровеньопределения табличных ограниченийДоп.