Базы_данных(мет). Тема Нормализация
Скачать 326.25 Kb.
|
Лабораторная работа № 2Тема: Создание БД и ее объектов с использованием СУБД ORACLE (2 часа) Цельработы:ознакомиться с основными объектами СУБД Oracle, с командами, предназначенными для создания и изменения отношений, для манипулирования данными отношений. Для защиты лабораторной работы необходимо представить отчет, который должен иметь следующую структуру: Описание предметной области. Содержание запросов для создания и заполнения БД (согласно варианту). Скриншоты созданных и заполненных таблиц. Теоретический материал. Основные объекты и типы данных СУБД «Oracle». База данных – это совокупность служебных файлов, файлов данных и внутренних структур, с помощью которых обеспечивается функционирование логической базы данных. Каждый объект БД Oracle принадлежат какому-либо пользователю (user). Имя пользователя совпадает с именем схемы этого пользователя, поэтому говорят, что объект находится в схеме пользователя. select* fromscott.emp;- выбор данных из таблицы emp пользователя scott. В СУБД Oracle существуют предопределённые пользователи, которые создаются при создании базы данных. Основные из них: SYS – пользователь, которому принадлежат объекты словаря данных; SYSTEM – администратор базы данных (АБД). Другие пользователи создаются командой CREATE USER. Роль (role) – это совокупность привилегий, предоставляемых пользователю и/или другим ролям. Роль позволяет предоставить конкретному пользователю определённую роль (набор прав) или соотнести его определённой группе пользователей, обладающей набором прав в соответствии с задачами, которые на неё возложены. В Oracle есть предопределённые роли, например, роль DBA – DataBase Administrator. Эта роль назначается тем пользователям, которые должны выполнять различные административные задачи. Таблицы (table) являются основным объектом БД, в котором хранятся данные предметной области. Каждая таблица принадлежит определённому пользователю Oracle, и внутри схемы пользователя имена таблиц уникальны. Полное имя таблицы в базе данных состоит из имени схемы и собственно имени таблицы. Имя таблицы – обычный идентификатор, который начинается с латинской буквы, может содержать цифры, знаки #_$ и иметь длину не более 30-и символов. Основные типы данных СУБД «Oracle». Символьные: CHAR [(длина)] – для хранения символьных строк фиксированной длины. Длина строки по умолчанию – 1 байт, максимальная длина – 2000б. VARCHAR2 (длина) – для хранения символьных строк переменной длины. Параметр длина определяет максимальную длину строки - 4000. Числовые: NUMBER [(точность, [масштаб])] – для представления чисел с заданной точностью. Календарные:DATE – хранит дату и время с точностью до секунды, занимает 7 байт. Создание, изменение и удаление отношений (таблиц). Для создания нового отношения (таблицы) используется команда CREATE TABLE. По этой команде создаётся схема отношения, выделяется память для хранения данных таблицы. CREATETABLE[<имясхемы>.]<имятаблицы> ({<имяполя><типданных>[(<размер>)][NOTNULL(1)] [DEFAULT <выражение> (2)] [<ограничения целостности поля> (3)…]} .,..[,<ограничения целостности таблицы>.,..]) [<параметры_распределения_памяти>(4)] [ TABLESPACE <имя_табличной_области> (5)][ STORAGE<размер_памяти>(6)] [AS<запрос>(7)]; – ограничение целостности, означающее, что значение этого поля не может быть NULL (обязательное поле). По умолчанию любое поле, кроме первичного ключа, является необязательным. – задание значения поля по умолчанию. Тип <выражения> должен соответствовать типу поля. – правила, которым должны удовлетворять значения полей таблицы. – это параметры, определяющие распределение памяти внутри блока данных. (5)– табличное пространство, в котором будет размещаться таблица. – размеры первого и последующего блоков памяти, которые будут выделяться таблице. – запрос SELECT. Если используется <запрос>, то можно в операторе CREATE TABLE определять только имена полей. Тип данных и размерность каждого будут производными от результатов запроса. Ограничения целостности система проверяет всякий раз, когда эти ограничения могут быть нарушены (т.е. при выполнении любой операции модификации данных). Если при проверке обнаружено нарушение ограничения, команда модификации данных откатывается. Каждое ограничение целостности (ОЦ) имеет внутреннее имя, которое назначается системой при создании этого ограничения целостности. При нарушении какого-либо ОЦ система выдаёт сообщение об ошибке с указанием имени нарушенного ограничения. Поэтому при создании таблицы имена ограничений целостности можно назначать, чтобы потом получать осмысленные сообщения об ошибках. Общийсинтаксис: <имяполя><тип>[CONSTRAINT<имяОЦ>]<ограничениецелостности>. Удаление таблицы выполняется с помощью команды DROP TABLE: DROPTABLE<имятаблицы>[CASCADECONSTRAINTS]; Таблица будет удалена вместе с данными без дополнительного запроса на подтверждение. При указании опции CASCADE CONSTRAINTS вместе с таблицей каскадно удаляются все ограничения по внешним ключам на данную таблицу. Если не указывать эту опцию, то при наличии внешних ключей, ссылающихся на удаляемую таблицу, операция будет отменена. Если таблицу надо быстро очистить от данных, но не удалять, лучше воспользоваться командой TRUNCATE TABLE <имя_таблицы>. С помощью команды ALTER TABLE можно изменить схему существующей таблицы. Изменения могут выражаться в: 1.добавление столбца или ограничения целостности; 2.модификация определения существующих столбцов; 3.отмена ограничения целостности; 4.изменение распределения памяти в будущих экстентах; 5.отметить, что для данной таблицы был выполнено резервное копирование. Синтаксис: ALTERTABLE[<имя_схемы>.]<имя_таблицы> [ADD ({<имя_поля> | <имя_ограничения_целостности>} [,…] ) ][MODIFY(<имя_поля>[,…])] [DROP CONSTRAINT <имя_ограничения_целостности>][<параметры_распределения_памяти>] [STORAGE<размер_памяти>][BACKUP]; ADD/MODIFY – ключевое слово для определения действия, которое будет производиться над таблицей (добавление или модификация). DROP constraint – отменяет указанное ограничение для поля или таблицы. BACKUP – модифицирует словарь данных, отмечая, что таблица была скопирована на момент выдачи команды ALTER TABLE. Манипулирование данными отношений (таблиц). Язык SQL включает в себя подмножество команд DML – язык манипулирования данными. Основные команды DML INSERT (добавить данные), UPDATE (изменить данные), DELETE (удалить данные). Результаты выполнения этих команд отражаются в таблицах базы данных. INSERT INTO <имя таблицы> [(<список полей таблицы>)]VALUES(<списоквыражений>)|<запрос>; Под <запросом> подразумевается команда SELECT, результаты работы которой добавляются в указанную таблицу. В предложении VALUES указываются выражения, порождающие значения полей новой записи таблицы. UPDATE – обновление данных в таблице. UPDATE<имятаблицы> SET <имя поля1> = <выражение1>[, <имя поля2> = <выражение2>,…][WHERE<условие>]; Запрос на обновление изменяет в указанной таблице значения указанных полей тех записей, которые удовлетворяют заданному условию отбора (where <условие>). Если условие не указано, обновляются все записи таблицы. Правила формирования условий выбора – такие же, как для команды SELECT. Удаление таблицы: DELETEFROM<имя таблицы>[WHERE<условие>]; СУБД Oracle. Для того чтобы зайти в СУБД Oracle необходимо: 1) Открыть любой браузер и в строке адреса набрать: 127.0.0.1:8080/apex – если Oracle установлен локально; IP-адрес сервера:8080/apex – если Oracle установлен на сервере. Далее загрузится следующая страница: Где нужно ввести логин и пароль. Если СУБД установлено на сервере: Логин: ISTZ4101 (Для группы ИСТз41, последние две цифры номер по журналу группы); ISTZ4201 (Для группы ИСТз42, последние две цифры номер по журналу группы) Пароль: такой же как и логин. После входа в систему загружается следующая страница: Для ввода и выполнения запросов используете: Home > SQL > SQL Commands. Для просмотра созданных объектов БД: Home >ObjectBrowser. Практическая часть. Пример: Необходимо создать и заполнить отношения базы данных бухгалтерии, состоящей из таблиц следующего вида: Отношение "Отделы" (поля "Идентификатор", "Название отдела"). Отношение "Сотрудники":
Отношение "Должности" (поля "Название должности", "Оклад") Отношение "Дети" (поля "ФИО", "Пол" и "Дата рождения"). Ход работы: 1) Создание и заполнение таблиц. Созданиеотношения"Отделы": CREATE TABLE Otdelu( otdel_id NUMBER(3,0) PRIMARY KEY, otdel_title VARCHAR(25) ); Созданиеотношения"Должности": CREATE TABLE Job( job_title VARCHAR(20) PRIMARY KEY, salary NUMBER(8,2) NOT NULL ); Созданиеотношения"Сотрудники": CREATE TABLE Emp( id_table NUMBER(6,0) primary key, FIO VARCHAR(40) NOT NULL, sex CHAR DEFAULT 'M', date_birth DATE NOT NULL, otdel_id NUMBER(3,0) REFERENCES Otdelu, job_title VARCHAR(20) REFERENCES Job, date_delivery DATE NOT NULL, stazh NUMBER(5,2) DEFAULT 0, salary_responsible NUMBER(1,0) DEFAULT 0, CHECK(sex IN ('M','W')), CHECK(salary_responsible IN (0,1)) ); Созданиеотношения"Дети": CREATE TABLE Children( FIO_child VARCHAR(40) NOT NULL primary key, id_table Number(6,0) REFERENCES Emp, sex_child CHAR DEFAULT 'M', date_birth_child DATE NOT NULL, CHECK(sex_child IN ('M','W')) ); Заполнениеотношения"Должности": INSERT INTO Job … Заполнениеотношения"Отделы": INSERT INTO Otdelu … Заполнениеотношения"Сотрудники": INSERT INTO Emp … Заполнениеотношения"Дети": INSERT INTO Children … Вариантызаданий. |