| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Урок 2. Понятия базы данных, отношения, ключи и др.
Delphi & SQLАвтор: Сергей Катков salkat@aip.mk.ua Урок 2. Понятия базы данных, отношения, ключи и др.Для начала нам следут разобраться с понятиями - весьма модная нынче тема. Я имею ввиду разборки и понятия. ;) Нам следует убедиться, что мы будем правильно понимать друг друга и называть одинаковые вещи одинаковыми именами. Поэтому определимся с терминами. В нашем случае мы будем рассматривать упрощенный набор терминов. Вообще, реляционная теория в чистом виде содержит очень много терминов и понятий. Но в реальных системах управления базами данных (СУБД) никто никогда ее полностью не придерживался. Всегда что-то упрощается, что-то добавляется свое. Так как мы рассматриваем не голую теорию, а реально работающие Delhi, или MS SQL Server, то нас интересует теория, которая относится именно к ним. Для желающих изучить теорию реляционных баз данных в чистом виде могу порекомендовать книжку "Введение в системы баз данных." Автор К. Дж. Дейт
Таблица для нас - совокупность строк и столбцов. Почти полная аналогия с таблицами на бумаге. Важные уточнения: Каждый столбец должен иметь имя, уникальное в пределах этой таблицы. А строки, в теории баз данных, могут следовать в любом порядке, и не имеют номеров. Хотя Delphi, FoxPro и другие добавляют к каждой строке номер, но при выборке данных в SQL, вы его, в общем случае, не получите. Поэтому к каждой строке принято добавлять какой-нибудь идентификатор, для того, чтобы потом можно было легко найти ее. Подробнее см. ключи в этом же уроке.
В реляционной теории баз данных, разделяют понятия таблицы и отношения. Например, в отношении не оговаривается порядок столбцов, а только их набор. Еще для отношений определены ограничения типа невозможности содержать две совершенно одинаковые строки. Различия мы сформулируем в одной фразе: Отношение - довольно абстрактный вид объекта, а таблица - его конкретное изображение. Поэтому мы, в дальнейшем, для упрощения, будем считать, что это одно и то же. Но важно не забывать, что в чистой теории баз данных - это разные понятия.
Что такое ключ? Набор столбцов. Он может состоятьиз одного столбца, или охватывать все столбцы таблицы. Для чего нам нужны ключи? Для идентификации строк таблицы. В чистой реляционной теории баз данных это единственный способ сослаться на строку. Ключи бывают разные - потенциальные, первичные, альтенативные, внешние, индексные, хеш-ключи, ключи сортировки, вторичные ключи, ключи шифрование и расшифровки и т.д. Но мы договаривались, что будем рассматривать только то, что нам понадобится в работе, вот и рассмотрим. Желающим углибить свои знания могу посоветовать прочитать уже упоминавшуюся выше книгу Дейта. Потенциальные ключи.Потенциальным ключом будем называть такую комбинацию столбцов, которая обладает следующими свойствами:
Рассмотрим, например, такую таблицу:
Табличка у нас простая и небольшая. Но нам хватит. Понятно, что отчество не может быть потенциальным ключом - есть совпадения. Фамилия - может, если только мы не планируем появления новых строк в таблице. Можно взять комбинацию фамилии и должности, врядли у нас будет два директора-однофамильца. Номер паспорта также подходит на роль потенциального ключа. Я думаю вы поняли мою мысль - к каждой конкретной таблице потенциальнх ключей может быть много. Выбор потенциального ключа - дело программиста. Тот же номер паспорта может не подойти, если мы ожидаем кого-нибудь с поддельным паспортом ;) Выбор делается каждый раз заново для каждой ситуации. [an error occurred while processing this directive] Первичные ключи.Итак с потенциальными ключами определились. Первичный
ключ - это один из потенциальных ключей. Тот, который нам больше понравится. Вам
какой больше нравиться? В реальной ситуации, новичок выберет номер паспорта. А
что выберет профессионал? Профессионал добавит еще одно поле-счетчик, которое
будет содержать уникальное для каждой записи значение. В Delphi такой тип поля
называется AutoIncrement, в SQL Server есть целых 2 варианта - TimeStamp и
свойтсво Identity поля. Подробнее этот момент мы рассмотрим в уроках по в
взаимодействию с SQL Server'ом. Про полезность введения дополнительного поля,
так называемого "суррогатного ключа", можно почитать
здесь. Мы ведь собрались стать профессионалами? Вот и поучимся у умных
людей. Альтернативные ключи.Первичный ключ может быть только один на всю таблицу! После выбора первичного ключа из набора потенциальных ключей, оставшиеся ключи называются альтенативными. Это так, для знания терминологии. Пока нам о них больше ничего знать не надо. Внешние ключи.Эта тема тесно связана со следующей - "Некоторые
правилами построения баз данных" В частности с понятием нормализации
Это будет потом, а сейчас только некоторые моменты.
В первой таблице - с деньгами - столбец "Код работника" называется внешним
ключом. Ясно, что он не может существовать без соответствующей строки из
второй таблицы, в которой столбец "Код работника" - уже знакомый нам обычный
первичный ключ. Вторая таблица - с фамилиями - является как бы "справочником
фамилий" для первой. Ссылочная целостность.В предыдущем параграфе мы обошли вопрос "А что
будет, если не найдется работника с кодом, который мы использовали?" Ничего
хорошего не будет. Такой ситуации надо всячески избегать. База данных.Ну вот, наконец, и добрались. А что же такое база данных? Базой данных мы будем называть совокупность таблиц, индексов, хранимых процедур, триггеров и всего остального, что касается нашего проекта. В Access'е, например, так вообще все это в одном файле хранится. Ладно, с терминологией вроде определились. Теперь нам надо бы ознакомиться с некоторыми правилами построения баз данных Рубрика: Delphi & SQL
HTML 5: пять вещей вызывающих особый интер....
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.
Подробнее... |
Рубрика: Html
| Добавлено: 22.12.2008
asp.net: ListView с разных сторон.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Создание кросс-таб отчета в Stimulsoft Rep....
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|