72118

Реляционная модель данных с хранением в виде двумерных таблиц

Доклад

Информатика, кибернетика и программирование

Таблицы обладают следующими свойствами: каждая ячейка таблицы является одним элементом данных; каждый столбец содержит данные одного типа числа текст и т. Первичный ключ должен обладать следующими свойствами: уникальность: не должно существовать двух или более записей имеющих одинаковые...

Русский

2016-09-14

22.79 KB

1 чел.

Рассмотрим реляционную модель данных, в которой данные хранятся в виде двумерных таблиц.

Таблицы обладают следующими свойствами:

- каждая ячейка таблицы является одним элементом данных;

- каждый столбец содержит данные одного типа (числа, текст и т. п.);

- каждый столбец имеет уникальное имя;

- таблицы организуются так, чтобы одинаковые строки отсутствовали;

- порядок следования строк и столбцов произвольный.

Для идентификации записей выделяют следующие виды ключей – полей, определяющих запись:

- первичный: однозначно определяет запись;

- вторичный: выполняет роль поисковых и группировочных признаков и позволяет найти несколько записей.

Первичный ключ должен обладать следующими свойствами:

- уникальность: не должно существовать двух или более записей, имеющих одинаковые значения полей, входящих в первичный ключ;

- не избыточность: первичный ключ не должен содержать поля, удаление которых из ключа не нарушит его уникальность

(пиши ВСЕ, ЧТО ВЫШЕ, а потом можешь взять пример из текста ниже)

 ___________________________________________________________________________

Реляционная модель данных – логическая модель данных. В настоящее время эта модель является фактическим стандартом, на который ориентируются практически все современные коммерческие СУБД.

Структура реляционной модели данных:

  1.  структурная
  2.  манипуляционная
  3.  целостная

Структурная часть модели определяет, то что единственной структурой данных является нормализованное n-арное отношение. Отношения удобно представлять в форме таблиц, где каждая строка есть кортеж, а каждый столбец – атрибут, определенный на некотором домене. Реляционная база данных представляет собой конечный набор таблиц.

Манипуляционная часть модели определяет два фундаментальных механизма манипулирования данными – реляционная алгебра и реляционное исчисление. Основной функцией манипуляционной части реляционной модели является обеспечение меры реляционности любого конкретного языка реляционных БД.

Язык называется реляционным, если он обладает не меньшей выразительностью и мощностью, чем реляционная алгебра или реляционное исчисление.

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

Структура реляционной модели данных

Можно провести аналогию между элементами реляционной модели данных и элементами модели "сущность-связь". Реляционные отношения соответствуют наборам сущностей, а кортежи – сущностям. Поэтому, также как и в модели "сущность-связь" столбцы в таблице, представляющей реляционное отношение, называют атрибутами.

Пример базы данных, содержащей сведения о подразделениях предприятия и работающих в них сотрудниках, применительно к реляционной модели будет иметь вид:

База данных о подразделениях и сотрудниках предприятия

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

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

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

Достоинства и недостатки реляционной модели данных

Достоинства реляционной модели:

  1.  простота и доступность для понимания пользователем. Единственной используемой информационной конструкцией является "таблица";
  2.  строгие правила проектирования, базирующиеся на математическом аппарате;
  3.  полная независимость данных. Изменения в прикладной программе при изменении реляционной БД минимальны;
  4.  для организации запросов и написания прикладного ПО нет необходимости знать конкретную организацию БД во внешней памяти.

Недостатки реляционной модели:

  1.  далеко не всегда предметная область может быть представлена в виде "таблиц";
  2.  в результате логического проектирования появляется множество "таблиц". Это приводит к трудности понимания структуры данных;
  3.  БД занимает относительно много внешней памяти;
  4.  относительно низкая скорость доступа к данным.


 

А также другие работы, которые могут Вас заинтересовать

68934. Потоки. Класи потоків С++. Вбудовані потоки C++ 35 KB
  Потоки. Система введення-виводу мови C++, як і її аналог в мові С, оперує потоками. Потік (stream) — це логічний пристрій, одержуючий або передавальний інформацію. Потік пов’язаний з фізичним пристроєм введення-виводу. Всі потоки функціонують однаково, хоча фізичні пристрої
68935. Функції введення-виведення в потік 58.5 KB
  Бібліотека потоків C++ пропонує набір функцій-членів, які є загальними для всіх операцій введення-виводу потокових файлів. У даному розділі представлені ці функції-члени. Функція-член open відкриває потоковий файл для введення, виводу, дописування (у кінець файлу) і введення-виводу.
68936. Форматування за допомогою членів класу ios 105 KB
  Зокрема можна самостійно задавати різні прапори форматування визначені усередині класу ios або викликати різноманітні функціїчлени. Розглянемо спочатку засоби форматованого введеннявиводу за допомогою прапорів і функцій членів класу ios.
68937. Перевантаження операторів „«“ і „»“ 45 KB
  Оператор виведення називається оператором вставки insertion opertor тому що він вставляє символи в потік. Функції що перенавантажують оператори вставки і витягання називаються функціями вставки inserters і витягання extrctors відповідно. Створення власних функцій вставки...
68938. Створення власних маніпуляторів 41.5 KB
  Систему введення-виводу можна удосконалити, створивши свої власні маніпулятори. Ця можливість є важливою по двох причинах. По-перше, можна зосередити декілька операцій введення-виводу в одному маніпуляторі. Наприклад, досить часто в програмах виконується одна і та ж послідовність операцій введення-виводу.
68939. Історія об’єктно-орієнтованого програмування 35.5 KB
  Оскільки стимулом розробки мови C++ було об’єктно-орієнтоване I програмування (ООП), необхідно розуміти його основні принципи. Обєктно-орієнтоване програмування — досить могутній механізм. З моменту винаходу комп’ютера методології програмування різко змінилися, в основному із-за зростаючої складності програм.
68940. Класи та об’єкти в мові С++ 45 KB
  Клас є абстрактним типом даних, який визначається користувачем, і є моделлю реального обєкту у вигляді даних і функцій для роботи з ними. Дані класу називаються полями (по аналогії з полями структури), а функції класу — методами. Поля і методи називаються елементами класу.
68941. Контейнери 23.5 KB
  Іншими словами ви оголошуєте клас який містить члени даних які самі є екземплярами інших класів або покажчиками на інші класи. За допомогою контейнера класгосподар отримує доступ до відкритих членів класів що містяться. Деякі знавці C вважають за краще використовувати контейнери а не множинне спадкоємство...
68942. Inline функції 36.5 KB
  Визначення функцій що підставляються усередині класу Мова C володіє важливою властивістю: у нім існують функції inline functions що підставляються які широко використовуються в класах. Щоб замінити виклик функції підстановкою перед її визначенням слід вказати слово inline.