Лекция 1
Введение
Определение базы данных
Данные и модель данных
Модели БД
Модели БД
Функции СУБД
Основные понятия реляционных БД
Домен
Атрибут
Значение NULL
Первичный ключ
Схема отношений
Вторичный ключ, внешний ключ
Реляционная модель
Пример
Свойства отношений
Связи между таблицами
Типы связей
MS SQL Server
SQL (Structured Query Language).
В зависимости от задачи, которую выполняет команда T-SQL, он может принадлежать к одному из следующих типов:
Системные базы данных
Спасибо за внимание!
700.23K
Category: databasedatabase

Лекция 1 ТБД прак 26

1. Лекция 1

Введение в базы данных. Модели данных. Реляционные базы данных. СУБД

2. Введение

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

3. Определение базы данных

Предметная область - часть реального мира, подлежащая изучению с целью организации управления и,
в конечном счете, автоматизации. Предметная область представляется множеством фрагментов,
например, предприятие - цехами, дирекцией, бухгалтерией и т.д. Каждый фрагмент предметной области
харакетризуется множеством объектов и процессов, использующих объекты, а также множеством
пользователей, характеризуемых различными взглядами на предметную область.
Словосочетание "динамически обновляемая" означает, что соответствие базы данных текущему
состоянию предметной области обеспечивается не периодически, а в режиме реального времени. При
этом одни и те же данные могут быть по-разному представлены в соответствии с потребностями
различных групп пользователей.
База данных — это упорядоченный набор структурированной информации или данных, которые обычно
хранятся в электронном виде в компьютерной системе.

4. Данные и модель данных

Основополагающими понятиями в концепции баз данных являются обобщенные категории «данные» и
«модель данных».
Понятие «данные» в концепции баз данных — это набор конкретных значений, параметров,
характеризующих объект, условие, ситуацию или любые другие факторы, Примеры данных: Петров
Николай Степанович, $30 и т. д. Данные не обладают определенной структурой, данные становятся
информацией тогда, когда пользователь задает им определенную структуру, то есть осознает их
смысловое содержание. Поэтому центральным понятием в области баз данных является понятие
модели. Не существует однозначного определения этого термина, у разных авторов эта абстракция
определяется с некоторыми различиями но, тем не менее, можно выделить нечто общее в этих
определениях.
Модель данных — это некоторая абстракция, которая, будучи приложима к конкретным данным,
позволяет пользователям и разработчикам трактовать их уже как информацию, то есть сведения,
содержащие не только данные, но и взаимосвязь между ними.

5. Модели БД

С помощью модели данных могут быть представлены объекты предметной области и
взаимосвязи между ними. В зависимости от вида организации данных различают следующие
важнейшие модели БД:
иерархическую
сетевую
реляционную
объектно-ориентированную

6. Модели БД

В иерархической БД данные представляются в виде древовидной структуры. Подобная структура БД удобна для
работы с данными, упорядоченными иерархически. При оперировании данными со сложными логическими связями
иерархическая модель оказывается слишком громоздкой.
В сетевой БД данные организуются в виде графа. Недостатком сетевой структуры является жесткость структуры и
сложность ее организации.
Реляционная БД получила свое название от английского термина relation (отношение). Была предложена в 70-м году
сотрудником фирмы IBM Эдгаром Коддом. Реляционная БД представляет собой совокупность таблиц, связанных
отношениями. Достоинствами реляционной модели данных являются простота, гибкость структуры. Кроме того ее
удобно реализовывать на компьютере. Большинство современных БД для персональных компьютеров являются
реляционными.
Объектно-ориентированные БД объединяют сетевую и реляционную модели и используются для создания
крупных БД с данными сложной структуры.
Базы данных можно разделить на базы данных первого поколения: иерархические, сетевые; второго поколения:
реляционные; третьего поколения: объектно-ориентированные, обектно-реляционные.
Программы, с помощью которых пользователи работают с базой данных, называются приложениями. В общем случае
с одной базой данных могут работать множество различных приложений.

7. Функции СУБД

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

8.

9. Основные понятия реляционных БД

Основными понятиями реляционных баз данных являются тип данных, домен, атрибут,
кортеж, первичный ключ и отношение.
Понятие тип данных в реляционной модели данных полностью адекватно понятию типа
данных в языках программирования. Обычно в современных реляционных БД допускается
хранение символьных, числовых данных, битовых строк, специализированных числовых
данных (таких как "деньги"), а также специальных "темпоральных" данных (дата, время,
временной интервал).

10. Домен

Понятие домена более специфично для баз данных, хотя и имеет некоторые аналогии с подтипами
в некоторых языках программирования.
Наиболее правильной интуитивной трактовкой понятия домена является понимание домена как
допустимого потенциального множества значений данного типа. Например, домен "Имена" в
нашем примере определен на базовом типе строк символов, но в число его значений могут входить
только те строки, которые могут изображать имя (в частности, такие строки не могут начинаться с
мягкого знака).
Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми
только в том случае, когда они относятся к одному домену. В нашем примере значения доменов
"Номера пропусков" и "Номера групп" относятся к типу целых чисел, но не являются сравнимыми.
Заметим, что в большинстве реляционных СУБД понятие домена не используется, хотя в Oracle
V.7 оно уже поддерживается.
Домен – это множество отдельных допустимых значений данных, которые:
есть неделимыми (атомарными) для данной модели;
имеют одинаковый тип.

11. Атрибут

Атрибуты – это столбцы таблицы (поля таблицы). Атрибуты имеют имена. По имени
атрибута осуществляется обращение к таблице.
Схема отношения – это список имен атрибутов отношения с указанием имен типов.
Множество именованных схем отношения, называется схемой базы данных.
Кортеж рассматривается для конкретной (данной) схемы отношения. В такой схеме кортеж
есть множество пар, которые представлены следующим образом:
{ имя_атрибута, значение }
где имя_атрибута – имя конкретного атрибута.

12. Значение NULL

Существуют случаи, когда в таблице базы данных некоторые значения еще неизвестны на данный
момент времени. Такие значения называются пустыми значениями и могут быть заполнены со
временем (позже). Для задавания пустых значений, в базе данных используется слово NULL.
Системы управления базами данных допускают использования значения NULL для задавания
данных, которые могут быть заполнены позже.
Следует заметить, что значение NULL не является нулем и не является пустой строкой.

13. Первичный ключ

Важным условием любой базы данных есть то, что в ней не должно быть двух одинаковых записей. Или другими
словами, в таблице базы данных не должно быть двух кортежей, которые содержат одинаковые значения. Во
избежание этой проблемы, используются первичные ключи.
Первичный ключ – это специальное дополнительное поле (атрибут) таблицы, которое создается для обеспечения
уникальности идентификации записей таблицы. Основная цель создания первичного ключа – предотвратить
дублирование (повторение) записей таблицы.
Например. Пусть дана таблица Worker (см. п.8). Чтобы не повторялись записи, в этой таблице может быть создано
дополнительное поле (атрибут) с именем, например, ID_Worker. Тип этого поля может быть выбран как счетчик
(counter), который автоматически увеличивается при добавлении новой записи в таблицу.

14. Схема отношений

Именнованное множество пар "имя атрибута - имя домена" называется схемой отношения. Мощность этого множества называют степенью или "арностью" отношения. Набор именованных схем отношений представляет из себя схему базы
данных.
Атрибут, значение которого однозначно идентифицирует кортежи, называется ключевым (или просто ключом). В нашем
случае ключом является атрибут "Табельный номер", поскольку его значение уникально для каждого работника предприятия.
Если кортежи идентифицируются только сцеплением значений нескольких атрибутов, то говорят, что отношение имеет
составной ключ.
Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным, его значения не могут
обновляться. Все остальные ключи отношения называются возможными ключами.

15. Вторичный ключ, внешний ключ

Требования, предъявляемые к первичному ключу:
уникальность – то есть в таблице не должно существовать двух или более записей с одинаковым значением
первичного ключа;
первичный ключ не должен содержать пустых значений.
При выборе первичного ключа рекомендуется выбирать атрибут, значение которого не меняется в течение всего
времени существования экземпляра (в этом случае табельный номер предпочтительнее фамилии, так как ее можно
сменить, вступив в брак)
По полям, которые часто используются при поиске и сортировке данных устанавливаются вторичные ключи: они
помогут системе значительно быстрее найти нужные данные. В отличие от первичных ключей поля для индексов
(вторичные ключи) могут содержать неуникальные значения.
Первичные ключи используются для установления связей между таблицами в реляционной БД. В этом случае
первичному ключу одной таблицы (родительской) соответствует внешний ключ другой таблицы (дочерней). Внешний
ключ содержит значения связанного с ним поля, являющегося первичным ключом. Значения во внешнем ключе могут
быть неуникальными, но не должны быть пустыми. Первичный и внешний ключи должны быть одинакового типа.

16. Реляционная модель

В отличие от иерархической и сетевой моделей данных в реляционной отсутствует понятие группового отношения. Для
отражения ассоциаций между кортежами разных отношений используется дублирование их ключей. Рассмотренный в
параграфах 3.1 и 3.2 пример базы данных, содержащей сведения о подразделениях предприятия и работающих в них
сотрудниках, применительно к реляционной модели будет иметь вид:

17. Пример

Например, связь между отношениями ОТДЕЛ и СОТРУДНИК создается путем копирования первичного
ключа "Номер_отдела" из первого отношения во второе. Таким образом:
для того, чтобы получить список работников данного подразделения, необходимо
1. из таблицы ОТДЕЛ установить значение атрибута "Номер_отдела", соответствующее данному
"Наименованию_отдела"
2. выбрать из таблицы СОТРУДНИК все записи, значение атрибута "Номер_отдела" которых
равно полученному на предыдушем шаге.
для того, чтобы узнать в каком отделе работает сотрудник, нужно выполнить обратную операцию:
1. определяем "Номер_отдела" из таблицы СОТРУДНИК
2. по полученному значению находим запись в таблице ОТДЕЛ.
Атрибуты, представляющие собой копии ключей других отношений, называются внешними ключами.

18. Свойства отношений

Свойства отношений
1.
2.
3.
4.
Отсутствие кортежей-дубликатов. Из этого свойства вытекает наличие у каждого кортежа
первичного ключа. Для каждого отношения, по крайней мере, полный набор его атрибутов
является первичным ключом. Однако, при определении первичного ключа должно соблюдаться
требование "минимальности", т.е. в него не должны входить те атрибуты, которые можно
отбросить без ущерба для основного свойства первичного ключа - однозначно определять
кортеж.
Отсутствие упорядоченности кортежей.
Отсутствие упордоченности атрибутов. Для ссылки на значение атрибута всегда используется имя
атрибута.
Атомарность значений атрибутов, т.е. среди значений домена не могут содержаться множества
значений (отношения).

19. Связи между таблицами

Связи между таблицами. Записи в таблице могут зависеть от одной или нескольких записей другой
таблицы. Такие отношения между таблицами называются связями. Связь определяется следующим
образом: поле или несколько полей одной таблицы, называемое внешним ключом, ссылается на
первичный ключ другой таблицы. Рассмотрим пример. Так как каждый заказ должен исходить от
определенного клиента, каждая запись таблицы Orders (заказы) должна ссылаться на
соответствующую запись таблицы Customers (клиенты). Это и есть связь между таблицами Orders и
Customers. В таблице Orders должно быть поле, где хранятся ссылки на те или иные записи таблицы
Customers.

20. Типы связей

Существует три типа связей между таблицами.
Один к одному — каждая запись родительской таблицы связана только с одной записью дочерней. Такая
связь встречается на практике намного реже, чем отношение один ко многим и реализуется путем
определения уникального внешнего ключа. Связь один к одному используют, если не хотят, чтобы таблица
«распухала» от большого числа полей. Базы данных, в состав которых входят таблицы с такой связью не
могут считаться полностью нормализованными.
Один ко многим — каждая запись родительской таблицы связана с одной или несколькими записями
дочерней. Например, один клиент может сделать несколько заказов, однако несколько клиентов не могут
сделать один заказ. Связь один ко многим является самой распространенной для реляционных баз данных.
Многие ко многим — несколько записей одной таблицы связаны с несколькими записями другой.
Например, один автор может написать несколько книг и несколько авторов — одну книгу. В случае такой
связи в общем случае невозможно определить, какая запись одной таблицы соответствует выбранной
записи другой таблицы, что делает неосуществимой физическую (на уровне индексов и триггеров)
реализацию такой связи между соответствующими таблицами. Поэтому перед переходом к физической
модели все связи "многие ко многим" должны быть переопределены (некоторые CASE-средства, если
таковые используются при проектировании данных, делают это автоматически).Подобная связь между
двумя таблицами реализуется путем создания третьей таблицы и реализации связи типа «один ко многим»
каждой из имеющихся таблиц с промежуточной таблицей.

21. MS SQL Server

● Для организации баз данных MS SQL Server использует реляционную
модель. Эта модель баз данных была разработана еще в 1970 году Эдгаром
Коддом. А на сегодняшний день она фактически является стандартом для
организации баз данных.
● Реляционная модель предполагает хранение данных в виде таблиц, каждая
из которых состоит из строк и столбцов. Каждая строка хранит отдельный
объект, а в столбцах размещаются атрибуты этого объекта.
● Для идентификации каждой строки в рамках таблицы применяется
первичный ключ (primary key). В качестве первичного ключа может выступать
один или несколько столбцов. Используя первичный ключ, мы можем
ссылаться на определенную строку в таблице. Соответственно две строки не
могут иметь один и тот же первичный ключ.

22. SQL (Structured Query Language).

● Для взаимодействия с базой данных применяется язык SQL (Structured Query Language).
Клиент (например, внешняя программа) отправляет запрос на языке SQL посредством
специального API. СУБД должным образом интерпретирует и выполняет запрос, а затем
посылает клиенту результат выполнения.
В 1979 году компания Relational Software Inc. разработала первую систему управления
баз данных, которая называлась Oracle и которая использовала язык SQL. В связи с
успехом данного продукта компания была переименована в Oracle.
Впоследствии стали появляться другие системы баз данных, которые использовали SQL.
В итоге в 1989 году Американский Национальный Институт Стандартов (ANSI)
кодифицировал язык и опубликовал его первый стандарт. После этого стандарт
периодически обновлялся и дополнялся. Последнее его обновление состоялось в 2011
году.
Выделяются две разновидности языка SQL: PL-SQL и T-SQL. PL-SQL используется в
таких СУБД как Oracle и MySQL. T-SQL (Transact-SQL) применяется в SQL Server.

23. В зависимости от задачи, которую выполняет команда T-SQL, он может принадлежать к одному из следующих типов:


DDL (Data Definition Language / Язык определения данных). К этому типу
относятся различные команды, которые создают базу данных, таблицы,
индексы, хранимые процедуры и т.д. В общем определяют данные.
В частности, к этому типу мы можем отнести следующие команды:
CREATE: создает объекты базы данных (саму базу даных, таблицы, индексы и т.д.)
ALTER: изменяет объекты базы данных
DROP: удаляет объекты базы данных
TRUNCATE: удаляет все данные из таблиц

24.


DML (Data Manipulation Language / Язык манипуляции данными). К этому
типу относят команды на выбору данных, их обновление, добавление,
удаление - в общем все те команды, с помощью которыми мы можем
управлять данными.
К этому типу относятся следующие команды:
SELECT: извлекает данные из БД
UPDATE: обновляет данные
INSERT: добавляет новые данные
DELETE: удаляет данные

25.


DCL (Data Control Language / Язык управления доступа к данным). К
этому типу относят команды, которые управляют правами по доступу к
данным. В частности, это следующие команды:
GRANT: предоставляет права для доступа к данным
REVOKE: отзывает права на доступ к данным

26. Системные базы данных

● В MS SQL Server по умолчанию создается четыре системных баз данных:
• master: эта главная база данных сервера, в случае ее отсутствия или
повреждения сервер не сможет работать. Она хранит все используемые
логины пользователей сервера, их роли, различные конфигурационные
настройки, имена и информацию о базах данных, которые хранятся на
сервере, а также ряд другой информации.
model: эта база данных представляет шаблон, на основе которого
создаются другие базы данных. То есть когда мы создаем через SSMS свою
бд, она создается как копия базы model.
msdb: хранит информацию о работе, выполняемой таким компонентом как
планировщик SQL. Также она хранит информацию о бекапах баз данных.
tempdb: эта база данных используется как хранилище для временных
объектов. Она заново пересоздается при каждом запуске сервера.

27.

В центральное поле для ввода выражений sql введем следующий код:
1CREATE DATABASE usersdb
После создания базы даных, мы можем установить ее в качестве текущей с помощью команды USE:
1USE usersdb;

28.

● Для создания таблиц применяется команда CREATE TABLE. С этой
командой можно использовать ряд операторов, которые определяют
столбцы таблицы и их атрибуты. И кроме того, можно использовать ряд
операторов, которые определяют свойства таблицы в целом. Одна база
данных может содержать до 2 миллиардов таблиц.
● Общий синтаксис создания таблицы выглядит следующим образом:

29.

30. Спасибо за внимание!

English     Русский Rules