Таблицы базы данных: Таблицы. Основные понятия БД
Создание таблицы базы данных Access
Таблица содержит данные об одном информационном объекте или сущности, например сведения о покупателях или товарах. Каждая запись (строка) в таблице включает данные об одном экземпляре сущности, например о конкретном покупателе. Запись состоит из полей (столбцов), каждое из которых включает такие атрибуты сущности, как наименование, ИНН, адрес и телефон. Для однозначной идентификации записи в таблице определяется уникальный простой или составной ключ. База данных может содержать множество таблиц. Разработка базы данных начинается с создания таблиц.
Создание таблицы базы данных
Создание таблицы базы данных состоит из двух этапов. На первом этапе определяется ее структура: состав полей, их имена, тип данных каждого поля, размер поля, ключи, индексы таблицы и другие свойства полей. На втором этапе производится создание записей таблицы путем заполнения ее полей данными.
В Access создание таблицы может быть выполнено в одном из двух режимов:
- в режиме конструктора (Design View), позволяющем максимально полно определить структуру таблицы;
- в режиме таблицы (Datasheet View), предназначенном, прежде всего, для создания, просмотра, поиска, корректировки ее записей и, кроме того, реализующем функции, обеспечивающие определение структуры таблицы.
Создание таблицы базы данных в режиме таблицы
Рассмотрим, прежде всего, создание таблицы в режиме таблицы, т. к. этот режим значительно проще для неопытного пользователя, а новая версия Access предоставляет в этом режиме такие возможности разработки структуры таблицы, что они практически мало отличаются от доступных в режиме конструирования.
В процессе создания новой базы данных в ней автоматически создается новая пустая таблица с именем Таблица1 (Table1), которая открывается в области документов в режиме таблицы.
Одновременно открывается лента Работа с таблицами | Поля (Table Tools | Fields), обеспечивающая определение полей таблицы с различными свойствами. Ниже представлена эта лента с открытым списком Другие поля (More Fields), включающая команды для добавления и удаления полей таблицы с различными типами данных. В конце этого списка имеется раздел Краткое руководство (Quick Start), в котором содержатся часто используемые поля, такие как адрес, телефон, категория. Некоторые из них выполняют добавление поля со списком значений. При открытии списка в поле предоставляется возможность изменить его элементы. Таким образом, пользователь может сразу приступить к разработке первой таблицы базы данных в режиме таблицы, дополняя ее полями с помощью разнообразных и удобных средств.
Для создания и открытия следующей таблицы в аналогичном режиме предна-значена команда Таблица (Table), размещенная на вкладке ленты Создание (Create) в группе Таблицы (Tables).
В предлагаемой системой таблице определено ключевое поле с типом данных Счетчик (AutoNumber), и в нее в режиме таблицы можно добавлять новые поля, наделенные рядом характеристик. Столбец Щелкните для добавления (Click to Add) постоянно отображается в режиме таблицы, за исключением случая, когда в таблице не определен первичный ключ.
Как уже было сказано ранее, для каждого поля обязательно задается имя, однозначно определяющее это поле в таблице, и тип данных, соответствующий сохраняемым в этом поле данным. Тип данных определяет значения, которые можно сохранить в поле, операции, которые можно выполнить с данными, а также выделяемый объем памяти. С каждым полем также связывается группа параметров, называемых свойствами, которые определяют функциональные характеристики и внешний вид этого поля. В Access 2010 в режиме таблицы для поля может быть задано большинство свойств.
И у нас видео на эту тему:
В следующем уроке поговорим про типы данных MS Access.
Классификация таблиц в реляционных базах данных по признакам целостности и избыточности данных
Содержание статьи
Обоснование статьи и некоторые ключевые понятия;
1. Справочники и связки;
1.1. Виды таблиц;
1.2. Виды справочников;
1.3. Виды связок;
2. Обобщение классификации;
2.1. Классификация в табличном виде;
2.2. Классификация в схематичном виде;
3. Некоторые комментарии по применению классификации;
3.1. Применение классификации при нормализации таблиц;
Заключение.
Обоснование статьи и некоторые ключевые понятия
Очень часто присутствовал на обучении дисциплине «Базы данных». Обучался когда-то сам… Как-то даже пришлось проводить целый курс для друзей и знакомых. Во время обучения мною было замечено, что трудности возникают уже на этапе понимания таблиц и того, как ими пользоваться. Многие просто не могли и не могут разработать простейшие базы данных. После более детального рассмотрения такого понятия как таблицы и маленькой классификации, трудности восприятия таблиц в реляционных базах данных почти всегда исчезают. Итак!
В данной статье будет рассмотрена маленькая классификация таблиц по признакам целостности и избыточности. Что это значит? Это значит, что будут приведены примеры с описанием, какую структуру таблиц можно делать, чтобы предотвращать (пытаться предотвращать) избыточность и добиваться целостности в реляционных базах данных.
Для понимания дадим краткие определения целостности и избыточности данных:
Целостность данных – это свойство способности по одним данным восстанавливать другие, при этом не теряя семантическое единство этих данных и отношения между ними (между данными).
Избыточность данных – это состояние базы данных, при котором в таблицах присутствуют лишние данные.
Целостность данных может быть нарушена в результате операций модификации данных. Если в базе данных запрещены операции удаления и обновления, то целостность может быть нарушена только в результате операции добавления, а также неправильно написанных скриптов по отображению данных.
1. Справочники и связки
1.1. Виды таблиц
Немного углубимся в маленькую классификацию таблиц по видам их структуры. Разделим таблицы на два общих вида. Первым видом будут таблицы-справочники, вторым таблицы-связки.
Рисунок 1. Справочники и связки
Информацию в таблицах можно разделить на два вида. На информацию, которая описывает объекты (субъекты), связи и информацию, которая описывает действия, процессы, события, иное.
В справочниках содержатся сведения об объектах и субъектах, связях. В связках содержатся сведения о действиях, процессах, событиях и так далее.
В связках хранятся данные, взятые из таблиц справочников. Поскольку невыгодно повторять одни и те же данные при описании объектов (субъектов) и при описании их взаимодействия, данные об объектах (субъектах) заносятся в справочники, а в таблицах-связках не хранятся данные объектов (субъектов) в чистом виде, а лишь ссылки на них (внешний ключ). Таким образом, в связках хранятся данные по взаимодействию объектов (субъектов) и ссылки на самих объектов (субъектов) (внешний ключ). Эти «ссылки» являются первичными ключами в таблицах справочниках. Но об этом потом…
Отличие справочника от связки выражается в том, что таблицы-справочники могут быть самостоятельными и независимыми (то есть, при чтении данных некоторых справочников можно в целом понять семантику), а таблицы-связки практически никогда.
1.2. Виды справочников
Справочники могут подразделяться на несколько видов. Это статичные, статично-динамичные и динамичные справочники. Разумеется, вряд ли можно назвать абсолютно статичный справочник, так как в этом мире может измениться всё. Или почти всё.
Статичный справочник – справочник, данные об объектах, субъектах, связях в котором либо никогда не подвергаются модификации после первичной модификации, либо настолько редко подвергаются модификации, что этим можно пренебречь.
Примером таких справочников могут служить список месяцев с названиями и номерами, список дней недели, список времён года, список океанов и так далее…
Номер | Наименование |
1 | Январь |
2 | Февраль |
3 | Март |
4 | Апрель |
5 | Май |
6 | Июнь |
7 | Июль |
8 | Август |
9 | Сентябрь |
10 | Октябрь |
11 | Ноябрь |
12 | Декабрь |
Таблица 1. Пример статичных справочников
Статично-динамичный справочник – справочник, в котором хранятся данные о связях, если связи носят справочный характер. В таком справочнике могут быть внешние ключи.
Наиболее удачным примером будет таблица с такими медицинскими данными, как вес. Список человек, вес которых измеряется, изменяется не так часто. А вот данные по их весу могут меняться каждый день. Статично-динамичные справочники являются единственными справочниками, где осознанно можно повторять любую информацию. Ещё одним примером может быть справочник окладов по должностям (по коду должности).
Код должности | Оклад | Дата обновления |
1001 | 12 000 | 05.02.2015 |
1002 | 17 000 | 01.02.2015 |
1003 | 11 500 | 01.02.2015 |
1004 | 25 450 | 01.02.2015 |
1005 | 10 000 | 01.02.2015 |
1006 | 6 000 | 04.02.2015 |
Таблица 2. Пример статично-динамичных справочников
Динамичные справочники – это таблицы, данные об объектах, субъектах, связях в которых меняются часто и используются в других таблицах. От статичных справочников отличаются только частотой модификации в них данных.
Примером таких таблиц могут быть списки проектов. На самом деле, данные об открытии или закрытии проектов могут находиться в самом справочнике проектов, что в большинстве случаев неправильно и нарушает целостность. С другой стороны, если хранить историю изменений по открытию и закрытию (приостановке) проектов, то можно получить избыточность данных. Целостность и избыточность данных будут бороться с друг другом ещё долго, также как и зима с летом.
Код проекта | Проект | Нормативный срок выполнения | Дата добавления | Пользователь |
PT102 | Покраска окон | 15 | 03.01.2014 | 1547 |
PT103 | Установка дверей | 10 | 04.01.2014 | 9874 |
PT587 | Проверка пожарных кранов | 2 | 04.01.2014 | 1456 |
PT588 | Замена люков | 3 | 02.01.2014 | 0147 |
PT133 | Очистка каналов | 11 | 09.02.2015 | 1547 |
Таблица 3. Пример динамичных справочников
Рисунок 2. Виды справочников
1.3. Виды связок
Таблицы-связки можно разделить на два вида.
Это справочник-связка (сразу же уточним, что справочник-связка справочником не является, назван так, потому что в нём существуют поля, которые образуют справочник, но в справочник выделены быть не могут). Таблица, в которой хранятся внешние ключи, данные, которые не являются справочными и поля, содержащие данные, которые образуют справочник, но не могут быть выделены в отдельную таблицу-справочник.
Примером справочника-связки будет являться таблица платёжных транзакций. Или таблица с данными о футбольном матче.
Код транзакции | Плательщик | Получатель | Сумма | Дата | Комментарий |
EEVS-doodi4 | 100045 | 57457 | -10 000 | 25.07.2014 | На сапоги |
UDFD-ioeed9 | 455780 | 10024 | -900 | 24.06.2014 | NULL |
PEDD-jdksl4 | 144770 | 56698 | -6980 | 01.01.2015 | NULL |
FDFE-keiiii0 | 447757 | 1 | 120 | 08.07.2014 | NULL |
Таблица 4. Пример справочника-связки
И связка (да, просто связка). Это таблица в которой хранятся только внешние ключи и данные, которые нельзя отнести к справочным, например дата или значения логических полей.
Примером связки будет являться таблица автоматического логирования терминала обработки данных.
Кстати, легко догадаться, что связки почти нигде не используются, поскольку чаще всего находятся данные, которые могут быть записаны в базу, но не содержаться в справочниках, поэтому невозможно сопоставить им внешний ключ.
Код | Код клиента | Показания счётчика | Месяц |
2334 | 35643 | 50 | 01.01.2015 |
2335 | 235673 | 49 | 01.01.2015 |
2335 | 436345 | 56 | 01.01.2015 |
2335 | 574733 | 24 | 01.01.2015 |
Таблица 5. Пример связки
Необходимо пояснить, что это за поля, которые образуют справочник, но не могут быть выделены в отдельную таблицу-справочник. Примером таких полей являются поля «комментарий», «жалоба», «описание», «предложение». Словом, если приводить популярный пример, то поле «сообщение» в таблице базы данных любой социальной сети…
Рисунок 3. Виды связок
2. Обобщение классификации
2.1. Классификация в табличном виде
Вид таблицы | Описание | Примеры | Плюсы (+) | Минусы(-) |
Статичный справочник | Таблица. Данные из неё берутся для других таблиц. Из справочника в других таблицах можно использовать только первичный ключ. В статичном справочнике должна содержаться информация, которая либо вообще не изменяется, либо изменяется так редко, что этим можно принебречь. На статичный справочник ссылаются (внешний ключ), когда нужно получить названия, обозначения, нормы, количественные или качественные показатели. Иное. | Справочник (наименований и номеров) месяцев. Справочник складов и цехов предприятия. Справочник правил игры. | Иногда заменяет системные функции СУБД, позволяет более гибко работать с некоторыми данными. В случае, если меняется редко изменяемая информация, предостерегает от серьёзных последствий. | Использование таблицы с любой структурой может замедлять работу, в случае, если таблица заменяет системное хранилише. Приходится писать дополнительные функции и обработки для данной таблицы, которые не всегда правильно оптимизированны. В некоторых случаях невозможно оптимизировать. |
Статично-динамичный справочник | Таблица. Данные из неё берутся для других таблиц. Из справочника в других таблицах нельзя использовать внешний ключ этого справочника, однако можно использовать первичный ключ. | Справочник окладов по должностям. Справочник (размеров обуви, веса, роста, размера головы) физиологических параметров. Справочник (менеджеров, компаний) содержащий компании и менеджеров, которые эти компании обслуживают и учитывают. | Позволяет проводить гибкую нормализацию по схеме «Справочник-связка» = «Связка»+«Статично-динамичный справочник». | Справочник, выделенный из справочника-связки, никуда не девается и не имеет никакой реляционной связи, которая позволила бы ему превратиться в статичный или динамичный справочник. А значит, всегда избыточен. |
Динамичный справочник | Таблица. Данные из неё берутся часто для других таблиц. Из справочника в других таблицах можно использовать только первичный ключ. В динамичном справочнике должна содержаться информация, которая часто изменяется. | Справочник клиентов. Справочник поставщиков. Справочник контрагентов. Справочник менеджеров компании. Справочник работников. Справочник студентов. | Позволяет хранить динамичные данные, при этом давая возможность однозначно ссылаться на них. | Чаще всего накопительного типа и не делим, что создаёт определённую избыточность. |
Справочник-связка | Таблица. Данные из неё не могут содержаться в других таблицах, но на основе них могут быть созданы данные в других таблицах. | Платёжные транзакции. Продажи. Межзаводские перемещения. График перевозок. | Позволяет проводить гибкую нормализацию по схеме «Справочник-связка» = «Связка»+«Статично-динамичный справочник». | Справочник-связка после нормализации превращается в связку и сводит избыточность данных к минимуму, не затрагивая целостность, однако не делим и при архивировании в текущей таблице не подлежит оптимизации. |
Связка | Таблица. Данные из неё не могут содержаться в других таблицах, но на основе них могут быть созданы данные в других таблицах. Таблица не может содержать кортежей, значения атрибутов в которых являются неделимыми и не уникальными. | Автоматический лог ошибок в программе. Лог запроса сервера. Результаты трассировок. Отчёты о выгрузке и загрузке компонентов. Автоматические отчёты системы безопасности. | Связка сводит избыточность данных к минимуму, не затрагивая целостность. | Накапливаясь, является неделимой таблицей. Сложно оптимизировать. |
Таблица 6. Классификация
2.2. Классификация в схематичном виде
Рисунок 4. Схема классификации таблиц в реляционных базах данных по признакам целостности и избыточности данных
3. Некоторые комментарии по применению классификации
3.1. Применение классификации при нормализации таблиц
Процесс нормализации, если не учитывать некоторые этапы (Но учитывать результаты этих этапов!) — это обычное «дробление» таблиц на более мелкие таблицы с созданием реляционной связи между ними непосредственно или через промежуточные таблицы (связь «Многие ко многим»). Под реляционной связью может не всегда пониматься реляционное отношение!
Преобразование динамичного или статичного справочника в статично-динамичный справочник, а справочника-связки в связку, как и статично-динамичного справочника в справочник-связку — это ни что иное, как дробление таблиц. То есть, преобразование одного вида таблиц в другой через показанную выше классификацию в целях избежания избыточности данных — так можно определить нормализацию (один из вариантов определения).
Для примера. Пусть имеется база данных, в которой единственная операция по модификации данных — это добавление. В таком случае становится неэффективным каждый раз при изменении какого либо отдельного атрибута сущности, «копировать» остальные значения атрибутов уже в другой кортеж. В этом случае используются NULL или же создание статично-динамичного справочника, где описывается ряд атрибутов одной семантики или один атрибут, а дублируется лишь внешний ключ с первичным ключом последовательности. Этот же метод может использоваться в традиционной схеме модификации данных с обновлением и удалением данных.
Заключение
Данная классификация была создана мной на основе наблюдений при проектировании баз данных, а также исходя из прочитанной теории по проектированию в реляционных СУБД. Моим друзьям и знакомым, изучающим дисциплину «базы данных» и занимающимся проектированием баз данных, и мне эта классификация достаточно серьёзно упростила «жизнь» и позволила во многих ситуациях заранее выбрать наиболее подходящий и, как оказывалось потом, правильный вид таблицы для хранения в ней тех или иных данных.
Классификация может быть расширена разделением существующих видов в ней на подвиды (возможно, даже, добавлением новых видов). Также эта классификация показала, что лучше в некоторых ситуациях не использовать тот или иной вид таблиц. Некоторые виды таблиц из данной классификации лучше использовать реже (динамичные справочники). А некоторые пытаться заменить на другие (справочники-связки на связки).
Надеюсь, кому ни будь ещё поможет эта классификация при освоении дисциплины «Базы данных» и при проектировании баз данных в реляционных СУБД.
Таблица (базы данных) — это… Что такое Таблица (базы данных)?
- Таблица (базы данных)
Таблица (базы данных)
Табли́ца (англ. table) — (в реляционной модели данных) структура хранения данных, состоящая из строк и столбцов и обладающая следующими свойствами:
- значения, находящиеся в одном столбце таблицы имеют один тип данных;
- атомарность: ячейки не содержат структур данных, например массивов;
- таблицы не содержат одинаковых строк.
Понятие таблицы актуально также для постреляционной модели данных, при этом в приведенном выше определении снимается ограничение 2 (атомарность).
Слово «таблица» является неформальным синонимом термина «отношение» (англ. relation). Аналогично, «строка» таблицы — это кортеж, «тип данных» — домен, «столбец» — атрибут.
См. также
Литература
- Братищенко В.В. Базы данных: Учеб.пособие. — Иркутск: Издательство БГУЭП, 2006.— 93с. (с.16, 18)
- Автоматизированные информационые технологии в экономике: Учебник/ Под общ. ред. И. Т. Трубилина. — М.: Финансы и статистика, 2000. — 416 с.: ил. (с.146-148)
Wikimedia Foundation.
2010.
- Таблетки от счастья
- Таблица МФА для английского языка
Смотреть что такое «Таблица (базы данных)» в других словарях:
Индекс (базы данных) — У этого термина существуют и другие значения, см. Индекс. Индекс (англ. index) объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в … Википедия
Сервер базы данных — Сервер БД выполняет обслуживание и управление базой данных и отвечает за целостность и сохранность данных, а также обеспечивает операции ввода вывода при доступе клиента к информации. Архитектура клиент сервер состоит из клиентов и серверов.… … Википедия
Реляционные базы данных — Реляционная база данных база данных, основанная на реляционной модели данных. Слово «реляционный» происходит от англ. relation (отношение[1]). Для работы с реляционными БД применяют реляционные СУБД. Использование реляционных баз данных было… … Википедия
Представление (базы данных) — У этого термина существуют и другие значения, см. Представление. Представление (англ. view, более созвучное не стандартное название «вид», в сленге программистов часто используется в качестве заимствования из английского «вьюха», «вьюшка»)… … Википедия
Иерархические базы данных — Иерархическая модель базы данных состоит из объектов с указателями от родительских объектов к потомкам, соединяя вместе связанную информацию. Иерархические базы данных могут быть представлены как дерево, состоящее из объектов различных уровней.… … Википедия
Коллизия (базы данных) — У этого термина существуют и другие значения, см. Коллизия. В базах данных коллизия событие, когда один пользователь запускает на выполнение транзакцию по изменению содержимого базы данных, а другой – на выборку из нее данных. Суть явления… … Википедия
PPP (базы данных) — PPP (читается «пипипи» или «пэпэпэ»; от англ. positions per page позиций на страницу) единица измерения ширины потока вывода информации из базы данных. Содержание 1 Появление … Википедия
Триггер (базы данных) — У этого термина существуют и другие значения, см. Триггер (значения). Триггер (англ. trigger) это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено действием по модификации… … Википедия
Курсор (базы данных) — У этого термина существуют и другие значения, см. Курсор (значения). Курсор ссылка на контекстную область памяти[источник не указан 126 дней]. В некоторых реализациях информационно логического языка SQL (Oracle,… … Википедия
Кластер (базы данных) — Кластер (англ. cluster) в терминологии СУБД Oracle, объект базы данных, используемый для хранения одной или нескольких таблиц, которые часто соединяются вместе в кластеризованных таблиц. После создания кластера в нем можно создавать таблицы.… … Википедия
Связи между таблицами базы данных / Хабр
1. Введение
Связи — это довольна важная тема, которую следует понимать при проектировании баз данных. По своему личному опыту скажу, что осознав связи, мне намного легче далось понимание нормализации базы данных.
1.1. Для кого эта статья?
Эта статья будет полезна тем, кто хочет разобраться со связями между таблицами базы данных. В ней я постарался рассказать на понятном языке, что это такое. Для лучшего понимания темы, я чередую теоретический материал с практическими примерами, представленными в виде диаграммы и запроса, создающего нужные нам таблицы. Я использую СУБД Microsoft SQL Server и запросы пишу на T-SQL. Написанный мною код должен работать и на других СУБД, поскольку запросы являются универсальными и не используют специфических конструкций языка T-SQL.
1.2. Как вы можете применить эти знания?
- Процесс создания баз данных станет для вас легче и понятнее.
- Понимание связей между таблицами поможет вам легче освоить нормализацию, что является очень важным при проектировании базы данных.
- Разобраться с чужой базой данных будет значительно проще.
- На собеседовании это будет очень хорошим плюсом.
2. Благодарности
Учтены были советы и критика авторов jobgemws, unfilled, firnind, Hamaruba.
Спасибо!
3.1. Как организовываются связи?
Связи создаются с помощью внешних ключей (foreign key).
Внешний ключ — это атрибут или набор атрибутов, которые ссылаются на primary key или unique другой таблицы. Другими словами, это что-то вроде указателя на строку другой таблицы.
3.2. Виды связей
Связи делятся на:
- Многие ко многим.
- Один ко многим.
- с обязательной связью;
- с необязательной связью;
- Один к одному.
- с обязательной связью;
- с необязательной связью;
Рассмотрим подробно каждый из них.
4. Многие ко многим
Представим, что нам нужно написать БД, которая будет хранить работником IT-компании. При этом существует некий стандартный набор должностей. При этом:
- Работник может иметь одну и более должностей. Например, некий работник может быть и админом, и программистом.
- Должность может «владеть» одним и более работников. Например, админами является определенный набор работников. Другими словами, к админам относятся некие работники.
Работников представляет таблица «Employee» (id, имя, возраст), должности представляет таблица «Position» (id и название должности). Как видно, обе эти таблицы связаны между собой по правилу многие ко многим: каждому работнику соответствует одна и больше должностей (многие должности), каждой должности соответствует один и больше работников (многие работники).
4.1. Как построить такие таблицы?
Мы уже имеем две таблицы, описывающие работника и профессию. Теперь нам нужно установить между ними связь многие ко многим. Для реализации такой связи нам нужен некий посредник между таблицами «Employee» и «Position». В нашем случае это будет некая таблица «EmployeesPositions» (работники и должности). Эта таблица-посредник связывает между собой работника и должность следующим образом:
Слева указаны работники (их id), справа — должности (их id). Работники и должности на этой таблице указываются с помощью id’шников.
На эту таблицу можно посмотреть с двух сторон:
- Таким образом, мы говорим, что работник с id 1 находится на должность с id 1. При этом обратите внимание на то, что в этой таблице работник с id 1 имеет две должности: 1 и 2. Т.е., каждому работнику слева соответствует некая должность справа.
- Мы также можем сказать, что должности с id 3 принадлежат пользователи с id 2 и 3. Т.е., каждой роли справа принадлежит некий работник слева.
4.2. Реализация
Диаграмма
Код на T-SQL
create table dbo.Employee
(
EmployeeId int primary key,
EmployeeName nvarchar(128) not null,
EmployeeAge int not null
)
-- Заполним таблицу Employee данными.
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (1, N'John Smith', 22)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (2, N'Hilary White', 22)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (3, N'Emily Brown', 22)
create table dbo.Position
(
PositionId int primary key,
PositionName nvarchar(64) not null
)
-- Заполним таблицу Position данными.
insert into dbo.Position(PositionId, PositionName) values(1, N'IT-director')
insert into dbo.Position(PositionId, PositionName) values(2, N'Programmer')
insert into dbo.Position(PositionId, PositionName) values(3, N'Engineer')
-- Заполним таблицу EmployeesPositions данными.
create table dbo.EmployeesPositions
(
PositionId int foreign key references dbo.Position(PositionId),
EmployeeId int foreign key references dbo.Employee(EmployeeId),
primary key(PositionId, EmployeeId)
)
insert into dbo.EmployeesPositions(EmployeeId, PositionId) values (1, 1)
insert into dbo.EmployeesPositions(EmployeeId, PositionId) values (1, 2)
insert into dbo.EmployeesPositions(EmployeeId, PositionId) values (2, 3)
insert into dbo.EmployeesPositions(EmployeeId, PositionId) values (3, 3)
ОбъясненияС помощью ограничения foreign key мы можем ссылаться на primary key или unique другой таблицы. В этом примере мы
- ссылаемся атрибутом PositionId таблицы EmployeesPositions на атрибут PositionId таблицы Position;
- атрибутом EmployeeId таблицы EmployeesPositions — на атрибут EmployeeId таблицы Employee;
4.3. Вывод
Для реализации связи многие ко многим нам нужен некий посредник между двумя рассматриваемыми таблицами. Он должен хранить два внешних ключа, первый из которых ссылается на первую таблицу, а второй — на вторую.
5. Один ко многим
Эта самая распространенная связь между базами данных. Мы рассматриваем ее после связи многие ко многим для сравнения.
Предположим, нам нужно реализовать некую БД, которая ведет учет данных о пользователях. У пользователя есть: имя, фамилия, возраст, номера телефонов. При этом у каждого пользователя может быть от одного и больше номеров телефонов (многие номера телефонов).
В этом случае мы наблюдаем следующее: пользователь может иметь многие номера телефонов, но нельзя сказать, что номеру телефона принадлежит определенный пользователь.
Другими словами, телефон принадлежит только одному пользователю. А пользователю могут принадлежать 1 и более телефонов (многие).
Как мы видим, это отношение один ко многим.
5.1. Как построить такие таблицы?
Пользователей будет представлять некая таблица «Person» (id, имя, фамилия, возраст), номера телефонов будет представлять таблица «Phone». Она будет выглядеть так:
Данная таблица представляет три номера телефона. При этом номера телефона с id 1 и 2 принадлежат пользователю с id 5. А вот номер с id 3 принадлежит пользователю с id 17.
Заметка. Если бы у таблицы «Phones» было бы больше атрибутов, то мы смело бы их добавляли в эту таблицу.
5.2. Почему мы не делаем тут таблицу-посредника?
Таблица-посредник нужна только в том случае, если мы имеем связь многие-ко-многим. По той простой причине, что мы можем рассматривать ее с двух сторон. Как, например, таблицу EmployeesPositions ранее:
- Каждому работнику принадлежат несколько должностей (многие).
- Каждой должности принадлежит несколько работников (многие).
Но в нашем случае мы не можем сказать, что каждому телефону принадлежат несколько пользователей — номеру телефона может принадлежать только один пользователь.
Теперь прочтите еще раз заметку в конце пункта 5.1. — она станет для вас более понятной.
5.3. Реализация
Диаграмма
Код на T-SQL
create table dbo.Person
(
PersonId int primary key,
FirstName nvarchar(64) not null,
LastName nvarchar(64) not null,
PersonAge int not null
)
insert into dbo.Person(PersonId, FirstName, LastName, PersonAge) values (5, N'John', N'Doe', 25)
insert into dbo.Person(PersonId, FirstName, LastName, PersonAge) values (17, N'Izabella', N'MacMillan', 19)
create table dbo.Phone
(
PhoneId int primary key,
PersonId int foreign key references dbo.Person(PersonId),
PhoneNumber varchar(64) not null
)
insert into dbo.Phone(PhoneId, PersonId, PhoneNumber) values (1, 5, '11 091-10')
insert into dbo.Phone(PhoneId, PersonId, PhoneNumber) values (2, 5, '19 124-66')
insert into dbo.Phone(PhoneId, PersonId, PhoneNumber) values (3, 17, '21 972-02')
Объяснения
Наша таблица Phone хранит всего один внешний ключ. Он ссылается на некого пользователя (на строку из таблицы Person). Таким образом, мы как бы говорим: «этот пользователь является владельцем данного телефона». Другими словами, телефон знает id своего владельца.
6. Один к одному
Представим, что на работе вам дали задание написать БД для учета всех работников для HR. Начальник уверял, что компании нужно знать только об имени, возрасте и телефоне работника. Вы разработали такую БД и поместили в нее всю 1000 работников компании. И тут начальник говорит, что им зачем-то нужно знать о том, является ли работник инвалидом или нет. Наиболее простое, что приходит в голову — это добавить новый столбец типа bool в вашу таблицу. Но это слишком долго вписывать 1000 значений и ведь true вы будете вписывать намного реже, чем false (2% будут true, например).
Более простым решением будет создать новую таблицу, назовем ее «DisabledEmployee». Она будет выглядеть так:
Но это еще не связь один к одному. Дело в том, что в такую таблицу работник может быть вписан более одного раза, соответственно, мы получили отношение один ко многим: работник может быть несколько раз инвалидом. Нужно сделать так, чтобы работник мог быть вписан в таблицу только один раз, соответственно, мог быть инвалидом только один раз. Для этого нам нужно указать, что столбец EmployeeId может хранить только уникальные значения. Нам нужно просто наложить на столбец EmloyeeId ограничение unique. Это ограничение сообщает, что атрибут может принимать только уникальные значения.
Выполнив это мы получили связь один к одному.
Заметка. Обратите внимание на то, что мы могли также наложить на атрибут EmloyeeId ограничение primary key. Оно отличается от ограничения unique лишь тем, что не может принимать значения null.
6.1. Вывод
Можно сказать, что отношение один к одному — это разделение одной и той же таблицы на две.
6.2. Реализация
Диаграмма
Код на T-SQL
create table dbo.Employee
(
EmployeeId int primary key,
EmployeeName nvarchar(128) not null,
EmployeeAge int not null
)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (159, N'John Smith', 22)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (722, N'Hilary White', 29)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (937, N'Emily Brown', 19)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (100, N'Frederic Miller', 16)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (99, N'Henry Lorens', 20)
insert into dbo.Employee(EmployeeId, EmployeeName, EmployeeAge) values (189, N'Bob Red', 25)
create table dbo.DisabledEmployee
(
DisabledPersonId int primary key,
EmployeeId int unique foreign key references dbo.Employee(EmployeeId)
)
insert into dbo.DisabledEmployee(DisabledPersonId, EmployeeId) values (1, 159)
insert into dbo.DisabledEmployee(DisabledPersonId, EmployeeId) values (2, 722)
insert into dbo.DisabledEmployee(DisabledPersonId, EmployeeId) values (3, 937)
Объяснения
Таблица DisabledEmployee имеет атрибут EmployeeId, что является внешним ключом. Он ссылается на атрибут EmployeeId таблицы Employee. Кроме того, этот атрибут имеет ограничение unique, что говорит о том, что в него могут быть записаны только уникальные значения. Соответственно, работник может быть записан в эту таблицу не более одного раза.
7. Обязательные и необязательные связи
Связи можно поделить на обязательные и необязательные.
7.1. Один ко многим
- Один ко многим с обязательной связью:
К одному полку относятся многие бойцы. Один боец относится только к одному полку. Обратите внимание, что любой солдат обязательно принадлежит к одному полку, а полк не может существовать без солдат. - Один ко многим с необязательной связью:
На планете Земля живут все люди. Каждый человек живет только на Земле. При этом планета может существовать и без человечества. Соответственно, нахождение нас на Земле не является обязательным
Одну и ту же связь можно рассматривать как обязательную и как необязательную. Рассмотрим вот такой пример:
У одной биологической матери может быть много детей. У ребенка есть только одна биологическая мать.
А) У женщины необязательно есть свои дети. Соответственно, связь необязательна.
Б) У ребенка обязательно есть только одна биологическая мать – в таком случае, связь обязательна.
7.2. Один к одному
- Один к одному с обязательной связью:
У одного гражданина определенной страны обязательно есть только один паспорт этой страны. У одного паспорта есть только один владелец. - Один к одному с необязательной связью:
У одной страны может быть только одна конституция. Одна конституция принадлежит только одной стране. Но конституция не является обязательной. У страны она может быть, а может и не быть, как, например, у Израиля и Великобритании.
Одну и ту же связь можно рассматривать как обязательную и как необязательную:
У одного человека может быть только один загранпаспорт. У одного загранпаспорта есть только один владелец.
А) Наличие загранпаспорта необязательно – его может и не быть у гражданина. Это необязательная связь.
Б) У загранпаспорта обязательно есть только один владелец. В этом случае, это уже обязательная связь.
7.3. Многие ко многим
Любая связь многие ко многим является необязательной. Например:
Человек может инвестировать в акции разных компаний (многих). Инвесторами какой-то компании являются определенные люди (многие).
А) Человек может вообще не инвестировать свои деньги в акции.
Б) Акции компании мог никто не купить.
8. Как читать диаграммы?
Выше я приводил диаграммы созданных нами таблиц. Но для того, чтобы их понимать, нужно знать, как их «читать». Разберемся в этом на примере диаграммы из пункта 5.3.
Мы видим отношение один ко многим. Одной персоне принадлежит много телефонов.
- Возле таблицы Person находится золотой ключик. Он обозначает слово «один».
- Возле таблицы Phone находится знак бесконечности. Он обозначает слово «многие».
9. Итоги
- Связи бывают:
- Многие ко многим.
- Один ко многим.
1) с обязательной связью;
2) с необязательной связью. - Один к одному.
1) с обязательной связью;
2) с необязательной связью.
- Связи организовываются с помощью внешних ключей.
- Foreign key (внешний ключ) — это атрибут или набор атрибутов, которые ссылаются на primary key или unique другой таблицы. Другими словами, это что-то вроде указателя на строку другой таблицы.
10. Задачи
Для лучшего усвоения материала предлагаю вам решить следующие задачи:
- Описать таблицу фильм: id, название, длительность, режиссер, жанр фильма. Обратите внимание на то, что у фильма может быть более одного жанра, а к одному жанру может относится более, чем один фильм.
- Описать таблицу песня: id, название, длительность, певец. При этом у песни может быть более одного певца, а певец мог записать более одной песни.
- Реализовать таблицу машина: модель, производитель, цвет, цена
- Описать отдельную таблицу производитель: id, название, рейтинг.
- Описать отдельную таблицу цвета: id, название.
У одной машины может быть только один производитель, а у производителя — много машин. У одной машины может быть много цветов, а у одного цвета может быть много машин. - Добавить в БД из пункта 6.2. таблицу военно-обязанных по типу того, как мы описали отдельную таблицу DisabledEmployee.
Табличные базы данных
Определение 1
База данных является совокупностью организованной определенным образом информации, которая позволяет упорядоченно сохранять данные о группах объектов, которые имеют одинаковый набор свойств. К базам данных можно отнести, к примеру, всевозможные справочники, энциклопедии, каталоги, картотеки и прочее.
Систематизированные данные издавна еще до появления первых вычислительных машин и устройств хранились в виде различных карточек. Переход к компьютеризированному хранению информации был охарактеризован для человека множеством преимуществ: оперативным доступом к неограниченному объему данных, возможностью логического контроля вводимой информации, контролем целостности базы данных, регулированием уровня доступа к данным для пользователей разных категорий. Но главным преимуществом явилось то, что использование компьютерного хранения информации дало возможность заменить механические процедуры извлечения отдельных сведений мощными методами обработки запросов человека и автоматическим составлением произвольных справок и отчетов. Появление компьютерных сетей позволило хранить данные не в одной машине, а в нескольких, таким образом появились так называемые распределенные базы данных. Вершиной объединения компьютерных данных можно считать Всемирную информационную сеть Интернет.
Готовые работы на аналогичную тему
Типы баз данных
В базах данных информация хранится, как было отмечено выше, в упорядоченном виде. В связи с этим существуют различные типы баз данных: иерархические, сетевые и табличные.
Иерархические базы данных графически представляются в виде дерева, состоящего из объектов различных уровней. На самом верхнем уровне находится один объект, на втором — объекты второго уровня и т. д.
Объекты связаны между собой, причем каждый из них может включать в себя объекты более низкого уровня. Примером иерархической базы данных является каталог папок в операционной системе Windows.
Замечание 1
Сетевую базу данных от иерархической отличает то, что в ней каждый элемент верхнего уровня может быть связан одновременно с любыми элементами следующего уровня.
Отметим, что связи между объектами в сетевых моделях не имеют никаких ограничений. Примером сетевой базы данных является Всемирная паутина глобальной сети Интернет. Миллионы документов связаны между собой при помощи гиперссылок в единую распределенную сетевую базу данных.
Табличная (реляционная) база данных представляет сбой перечень объектов одного типа, т.е. объектов с одинаковым набором свойств.
Табличные базы данных
База данных, хранящая данные о группе объектов с одинаковыми свойствами, представляется в виде двумерной таблицы, где каждая ее строка последовательно размещает значения свойств одного из объектов; а каждое значение свойства находится в своем столбце, названном по имени свойства.
Столбцы подобной таблицы называются полями, причем каждое поле имеет свое имя (имя соответствующего свойства) и тип данных, который представляет значения этого свойства.
Поле базы данных является столбцом таблицы, содержащим значения определенного свойства.
Определение 2
Строки таблицы – это записи об объекте, которые разбиты на поля столбцами таблицы, в результате каждая запись представлена набором значений, находящихся в полях.
Запись базы данных представляет собой строку таблицы, содержащую набор значений свойств, размещенных в полях базы данных.
Каждая таблица, как правило, содержит одно ключевое поле, содержимое которого является уникальным для каждой записи данной таблицы. С помощью ключевого поля однозначно идентифицируются записи в таблице.
Замечание 2
Таким образом, ключевое поле является полем, значения которого однозначно определяют записи в таблице.
Ключевое поле, как правило, имеет тип данных счетчик. Однако в некоторых случаях удобнее, чтобы ключевое поле таблицы имело другой тип (например, числовой — инвентарный номер или код объекта).
Тип поля
Тип поля определяется по типу данных, содержащихся в нем. В полях могут содержаться данные следующих типов:
- Счетчик, в нем содержится последовательность целых чисел, задаваемых автоматически при вводе записей. Пользователь данные числа не может изменить;
- Текстовый, в нем содержатся символы различных типов;
- Числовой, в нем содержатся числа различных типов;
- Дата/Время используется для содержания даты или времени;
- Картинка, используется для хранения изображения;
- Логический, имеет значения Истина (Да) или Ложь (Нет).
Для каждого типа характерен свой набор свойств. Наиболее важными из которых являются:
- размер поля используется для определения максимальной длины текстового или числового поля;
- формат поля используется для установления формата данных;
- обязательное поле используется для указания на то, что это поле обязательно нужно заполнить.
Пример табличной базы данных
Рассмотрим базу данных «Компьютер» (рис.3), которая представляет собой перечень объектов (компьютеры), каждый из которых имеет свое имя (название). В качестве характеристик (свойств) будут выступать тип процессора и объем оперативной памяти.
Столбцы этой таблицы представляют поля, каждое из которых имеет свое имя (название соответствующего свойства) и тип данных, которые отражают значения этого свойства. Тип полей Название и Тип процессора — текстовый, а тип поля Оперативная память — числовой. При этом каждое поле имеет определенный набор свойств (размер, формат и др.). Так, для поля Оперативная память задается формат данных «целое число».
Определение 3
Полем базы данных является столбец таблицы, который включает в себя значения определенного свойства.
Строки таблицы представляют записи об объекте, которые разбиты столбцами таблицы на поля. Запись базы данных представляет собой строку таблицы, содержащую набор значений различных свойств объекта.
Замечание 3
Каждая таблица должна иметь хотя бы 1 ключевое поле, содержимое которого является уникальным для любой записи в данной таблице. Значениями ключевого поля однозначно определяются записи в таблице.
Создание таблиц базы данных — Базы данных
Для создания новой таблицы в окне базы данных выберите объект Таблицы и нажмите кнопку Создать. В открывшемся окне Новая таблица выберите один из режимов создания таблицы. Основные первые три режима вынесены в рабочее поле, предназначенное для отображения списка таблиц. Это позволяет сразу перейти в нужный режим создания таблицы, сократив число выполняемых пользователем операций.
Строка Создание таблицы в режиме конструктора в рабочем поле окна базы данных или Конструктор в окне Новая таблица определяет выбор основного способа создания новой таблицы, при котором создание таблицы начинается с определения ее структуры в режиме конструктора таблиц. В режиме конструктора пользователь может сам установить параметры всех элементов структуры таблицы.
Определение структуры новой таблицы в режиме конструктора
При выборе режима конструктора таблиц появляется окно Таблица1: таблица, в котором определяется структура таблицы базы данных
При переходе в режим конструктора таблиц меняется состав команд меню, а панель инструментов базы данных заменяется на панель инструментов Конструктор таблиц.
Определение первичного ключа
Каждая таблица в реляционной базе данных должна иметь уникальный (первичный) ключ, однозначно определяющий каждую запись. Это позволяет быстро найти и связать данные из разных таблиц в запросах, формах и отчетах. Ключевое поле должно содержать уникальные значения, такие как коды или инвентарные номера и не может содержать значения Null. Если для таблицы определен первичный ключ, то Access предотвращает дублирование ключа или ввод значений Null в эти поля. Ключ может быть простым или составным, включающим несколько полей (до 10). Для определения ключа выделите составляющие ключ поля и нажмите на панели инструментов Конструктор таблиц кнопку Ключевое, или выполните команду меню Правка | Ключевое поле.
Для ключевого поля автоматически строится индекс. В этом можно убедиться, просмотрев информацию об индексах таблицы. Окно Индексы вызывается щелчком на кнопке просмотра и редактирования индексов Индексы на панели инструментов или выполнением команды меню Вид | Индексы.
В этом окне индексу первичного ключа присвоено имя Primary Key, в столбце Имя поля перечислены имена полей, составляющие индекс. Индекс ключевого поля всегда уникален и не допускает пустых полей и записях.
В качестве первичного ключа может быть задано поле с типом данных Счетчик. В этом случае при добавлении каждой записи в таблицу в это поле автоматически вносится порядковый номер. Указание такого поля является наиболее простым способом создания первичного ключа. Если первичный ключ не установлен пользователем до сохранения вновь созданной таблицы, Access спросит о необходимости создания первичного ключа. При ответе Да Access создаст первичный ключ с типом данных Счетчик.
Создание новой таблицы в режиме таблицы
В режиме таблицы пользователь может создать таблицу, не определяя предварительно ее структуры.
Создание новой таблицы в режиме таблицы осуществляется выбором строки Создание таблицы путем ввода данных в рабочем поле окна базы данных или строки Режим таблицы в окне Новая таблица.
После выбора этого режима сразу открывается пустая таблица, в которую можно ввести данные. При сохранении этой таблицы Access проанализирует Данные и автоматически присвоит соответствующий тип данных каждому полю, т. е. автоматически создаст структуру таблицы. Таблица имеет 10 столбцов и 21 строку. Полям таблицы по умолчанию присваиваются имена Поле1, Поле2 и т. д.
Любое поле этой таблицы можно переименовать в соответствии с требованиями пользователя, непосредственно редактируя имена в заголовке столбцов. Для этого дважды щелкните кнопкой мыши на области выделения столбца, содержащей его имя, или выполните команду Формат | Переименовать столбец. В результате курсор будет установлен на наименовании поля и откроется возможность его переименования. Для сохранения нового имени щелкните кнопкой мыши в любом месте таблицы.
Если требуется создать таблицу, содержащую более 20 полей, то можно вставить новые столбцы. Для этого установите указатель мыши в области столбца, слева от которого требуется вставить новый столбец, и выполните команду Вставка | Столбец.
Кроме переименования и вставки столбцов, допускается удаление столбцов или изменение их положения в таблице. Для удаления столбца его необходимо пометить, щелкнув кнопкой мыши на его заголовке, и выполнить команду Правка | Удалить столбец. Для перемещения столбца его следует пометить, оставив курсор на заголовке, нажать кнопку мыши и, удерживая ее, перетащить столбец в нужное место.
В каждый столбец вводятся данные определенного типа. При вводе данных, для которых определены стандартные форматы, необходимо использовать форматы из установленного для этого типа списка. Это позволяет Access автоматически определить тип данных. Свойство Формат поля остается пустым и при отображении данных используется формат по умолчанию. При сохранении таблицы все оставленные пустыми столбцы будут удалены.
По окончании ввода данных во все нужные столбцы необходимо сохранить таблицу, выполнив соответствующую команду. При сохранении таблицы выводится приглашение для создания ключевого поля. При выборе кнопки Да в таблицу будет добавлено ключевое поле типа Счетчик. Если введены данные, которые могут однозначно идентифицировать каждую запись, и их надо сделать ключевыми, то нужно нажать кнопку Нет. В этом случае пользователь должен самостоятельно создать ключ в режиме конструктора.
Только после сохранения таблицы Access создает ее структуру и делает возможным переход в режим конструктора таблиц. Тип данных каждого поля определяется форматом введенных данных. Если в дальнейшем потребуется изменить определение поля, например, задать другой тип данных, формат, указать значения по умолчанию, создать маски ввода, определить условие присвоения значения или добавить новые поля, то эти действия можно выполнить в режиме конструктора.
Вне зависимости от способа создания таблицы режим конструктора позволяет в любой момент изменить ее структуру.
Следует заметить, что возможности создания таблицы в режиме ввода данных являются ограниченными и, как правило, требуют доработки таблицы в режиме конструктора. Очевидно и то, что при создании таблицы этим способом пользователь не освобождается от необходимости знать допустимые в Access типы данных и форматы их отображения.
Если при заполнении таблицы правильно выбран формат даты, но при вводе допущена хотя бы одна ошибка, Access так же, как и в случае неверно выбранного формата, определит для такого поля тип данных Текстовый. При вводе ошибочного значения в таблицу с заранее определенной структурой и уже заданным типом данного Access обнаружит ошибку и сообщит об этом.
Формат вводимых в поле чисел, денежных единиц, времени, и даты должен совпадать с одним из форматов, определенных для этих типов данных. В окне конструктора таблиц можно просмотреть список установленных форматов для перечисленных типов данных. Некоторые из них можно изменить на соответствующих вкладках в окне Язык и стандарты. Для отображения этого окна нажмите на панели задач кнопку Пуск, выполните команды Настройка и Панель управления и запустите программу Язык и стандарты.
Особенности таблиц баз данных
Стр 1 из 4Следующая ⇒
Структура базы данных
Большинство баз данных имеют табличную структуру. Как мы знаем, в табличной структуре адрес данных определяется пересечением строк и столбцов. В базах данных столбцы называются полями, а строки — записями. Поля образуют структуру базы данных, а записи составляют информацию, которая в ней содержится.
Для того чтобы легко усвоить понятие структуры базы данных, надо представить себе пустую базу, в которой пока еще нет никаких данных. Несмотря на то что данных в базе нет, информация в ней все таки есть. Это структура базы, то есть набор полей. Они определяют, что будет записано в эту базу и в каком виде.
Простейшие базы данных
Простейшие базы можно создавать, не прибегая к специальным программным средствам. Чтобы файл считался базой данных, информация в нем должна иметь структуру (поля) и быть форматирована так, чтобы содержимое соседних полей легко различалось. Простейшие базы можно создавать даже в текстовом редакторе Блокнот, то есть обычный текстовый файл при определенном форматировании тоже может считаться базой данных.
Существует, по крайней мере, два формата текстовых баз данных:
• с заданным разделителем;
• с фиксированной длиной поля.
Несмотря на «примитивность» таких текстовых баз данных, мощные системы управления базами данных позволяют импортировать подобные файлы и преобразовывать их в «настоящие» базы данных. Поэтому если в организации пока нет системы управления базами данных, данные можно хранить в текстовом файле, а потом, когда такая система появится, данные не пропадут и будут успешно импортированы.
Свойства полей. Типы полей
Поля — это основные элементы структуры базы данных. Они обладают свойствами. От свойств полей зависит, какие типы данных можно вносить в поле, а какие нет, а также то, что можно делать с данными, содержащимися в поле.
Например, данные, содержащиеся в поле Цена, можно просуммировать, чтобы определить итоговый результат. Суммировать данные, содержащиеся в поле Номер телефона, совершенно бессмысленно, даже если номера телефонов записаны цифрами. Очевидно, что эти поля обладают разными свойствами и относятся к разным типам.
Основным свойством любого поля является его длина. Длина поля выражается в символах или, что то же самое, в знаках. От длины поля зависит, сколько информации в нем может поместиться. Мы знаем, что символы кодируются одним или двумя байтами, поэтому можно условно считать, что длина поля измеряется в байтах.
Очевидным уникальным свойством любого поля является его Имя. Разумеется, одна база данных не может иметь двух полей с одинаковым именем, поскольку компьютер запутается в их содержимом. Но кроме имени у поля есть еще свойство Подпись. Подпись — это та информация, которая отображается в заголовке столбца. Ее не надо путать с именем поля, хотя если подпись не задана, то в заголовке отображается имя поля. Разным полям, например, можно задать одинаковые подписи. Это не помешает работе компьютера, поскольку поля при этом по-прежнему сохраняют разные имена. Разные типы полей имеют разное назначение и разные свойства.
1. Основное свойство текстового поля — размер.
2. Числовое поле служит для ввода числовых данных. Оно тоже имеет размер, но числовые поля бывают разными, например, для ввода целых чисел и для ввода действительных чисел. В последнем случае кроме размера поля задается также размер десятичной части числа.
3. Поля для ввода дат или времени имеют тип Дата/время. Для ввода логических данных, имеющих только два значения (Да или Нет; 0 или 1; Истина или Ложь и т. п.), служит специальный тип — Логическое поле. Нетрудно догадаться, что длина такого поля всегда равна 1 байту, поскольку этого более чем достаточно, чтобы выразить логическое значение.
4. Особый тип поля — Денежный. Из названия ясно, какие данные в нем хранят. Денежные суммы можно хранить и в числовом иоле, но в денежном формате с ними удобнее работать. В этом случае компьютер изображает числа вместе с денежными единицами, различает рубли и копейки, фунты и пенсы, доллары и центы, в общем, обращается с ними элегантнее.
5. В современных базах данных можно хранить не только числа и буквы, но и картинки, музыкальные клипы и видеозаписи. Поле для таких объектов называется полем объекта OLE.
6. У текстового поля есть недостаток, связанный с тем, что оно имеет ограниченный размер (не более 256 символов). Если нужно вставить в поле длинный текст, для этого служит поле типа MEMO. В нем можно хранить до 65 535 символов. Особенность поля MEMO состоит в том, что реально эти данные хранятся не в поле, а в другом месте, а в поле хранится только указатель на то, где расположен текст.
7. Очень интересно поле Счетчик. На первый взгляд это обычное числовое поле, но оно имеет свойство автоматического наращивания. Если в базе есть такое поле, то при вводе новой записи в него автоматически вводится число, на единицу большее, чем значение того же поля в предыдущей записи. Это поле удобно для нумерации записей.
Лекция 2
Связанные таблицы
Примеры, которые мы привели выше, можно считать простейшими базами данных, но на самом деле это не совсем базы, а только таблицы. Если бы информация хранилась в таких простых структурах, то для работы с ней можно было бы обойтись без специальных систем управления базами данных. На практике приходится иметь дело с более сложными структурами, которые образованы из многих связанных таблиц.
Базы данных, имеющие связанные таблицы, называют также реляционными базами данных.
Рассмотрим пример работы малого предприятия, занимающегося прокатом компакт-дисков с компьютерными играми. Для того чтобы знать, кто какой диск взял, когда должен возвратить и сколько дисков каждого наименования осталось на складе, предприятию необходима база данных. Но если все сведения о покупателях и о дисках хранить в одной таблице, то таблица станет очень неудобной для работы. В ней начнутся повторы данных. Всякий раз, когда гражданин Новиков В. П. будет брать очередной диск, придется вписывать его домашний адрес, телефон и паспортные данные. Так никто не работает. Это долго, трудно и чревато многочисленными ошибками.
Гораздо удобнее сделать несколько таблиц. В одной хранить сведения о клиентах со всеми их паспортными данными, в другой — сведения о выданных дисках, чтобы в любой момент узнать, что выдано клиенту и когда наступает срок возврата, а в третьей таблице — остаток дисков на складе, чтобы вовремя пополнять запасы. После этого отдельные поля таблиц связывают. Если из таблицы Прокат известно, что клиент НВП взял диск D001, то система управления базой данных мгновенно найдет в таблице Клиенты все паспортные данные этого человека, а в таблице Склад все данные об этом диске.
Разделение базы на связанные таблицы не только удобно, но иногда и необходимо. Например, для увеличения числа заказов менеджер фирмы, занимающейся прокатом компакт-дисков, решил поставить в общем зале компьютер, на котором каждый клиент может просмотреть список имеющихся дисков с иллюстрациями из игр. Если база состоит только из одной таблицы, то вместе с информацией о дисках случайный посетитель получит доступ к информации о других клиентах фирмы. Вряд ли это понравится заказчикам. Такой менеджер не только не приобретет новых клиентов, но и растеряет тех, которых имел.
Если данные в разных записях начинают повторяться, это может говорить о том, что база имеет плохую структуру. Надо подумать о том, нельзя ли разбить таблицу на группу связанных таблиц
Если заданы связи между таблицами, то работать с разными таблицами можно, как с одной цельной базой данных
Поля уникальные и ключевые
Создание базы данных всегда начинается с разработки структуры ее таблиц. Структура должна быть такой, чтобы при работе с базой требовалось вводить в нее как можно меньше данных. Если ввод каких-то данных приходится повторять неоднократно, базу делают из нескольких связанных таблиц. Структуру каждой таблицы разрабатывают отдельно.
Для того чтобы связи между таблицами работали надежно, и по записи из одной таблицы можно было однозначно найти записи в другой таблице, надо предусмотреть в таблице уникальные поля.
Уникальное поле — это поле, значения в котором не могут повторяться.
Если из таблицы Прокат известно, что клиент Новиков просрочил возврат взятого диска, то он должен уплатить штраф. Но в таблице Клиенты фирмы может быть несколько разных Новиковых, и компьютер не разберется, кто же из них должен платить штраф. Это означает, что поле Фамилия не является уникальным и потому его нельзя использовать для связи между таблицами. Поле номера телефона — более удачный кандидат на звание уникального поля, но, как вы понимаете, и одним телефоном могут пользоваться несколько разных людей.
Если ни одно поле таблицы не приемлемо в качестве уникального, его можно создать искусственно. В нашем примере в таблице Клиенты фирмы создано поле Шифр, которое образовано первыми тремя буквами фамилии и последними двумя цифрами номера телефона. Его и использовали для связи между таблицами.
Скорее всего, поле Шифр окажется уникальным, и проблем со связями между таблицами не возникнет, но было бы неплохо, если бы компьютер мог просигнализировать в том случае, если вдруг записи в этом поле повторятся. Для этого существует понятие ключевое поле. При создании структуры таблиц одно поле (или одну комбинацию полей) можно назначить ключевым. С ключевыми полями компьютер работает особо. Он проверяет их уникальность и быстрее выполняет сортировку по таким полям. Ключевое поле — очевидный кандидат для создания связей. Иногда ключевое поле называют первичным ключом.
Если при создании таблицы автор не задал ключевое поле, система управления базой данных вежливо напомнит о том, что поле первичного ключа таблице не помешает
В качестве первичного ключа в таблицах часто используют поле, имеющее тип Счетчик. Ввести два одинаковых значения в такое поле нельзя по определению, поскольку приращение значения поля производится автоматически.
Структура связей между таблицами называется схемой данных
Лекция 3
СУБД Access
Системы управления базами данных (СУБД) — это программные средства, с помощью которых можно создавать базы данных, наполнять их и работать с ними. В мире существует немало различных систем управления базами данных. Многие из них на самом деле являются не законченными продуктами, а специализированными языками программирования, с помощью которых каждый, освоивший данный язык, может сам создавать такие структуры, какие ему удобны, и вводить в них необходимые элементы управления. К подобным языкам относятся Clipper, Paradox, FoxPro и другие.
Необходимость программировать всегда сдерживала широкое внедрение баз данных в малом бизнесе. Крупные предприятия могли позволить себе сделать заказ на программирование специализированной системы «под себя». Малым предприятиям зачастую не по силам было не только решить, но даже и правильно сформулировать эту задачу.
Положение изменилось с появлением в составе пакета Microsoft Office системы управления базами данных Access. Ранние версии этой программы имели номера Access 2.0 и Access 95.
С помощью Access обычные пользователи получили удобное средство для создания и эксплуатации достаточно мощных баз данных без необходимости что-либо программировать. В то же время работа с Access не исключает возможности программирования. При желании систему можно развивать и настраивать собственными силами. Для этого надо владеть основами программирования на языке Visual Basic.
Еще одним дополнительным достоинством Access является интегрированность этой программы с Excel, Word и другими программами пакета Office. Данные, созданные в разных приложениях, входящих в этот пакет, легко импортируются и экспортируются из одного приложения в другое.
Объекты Access
Исходное окно Access отличается простотой и лаконичностью. Шесть вкладок этого окна представляют шесть видов объектов, с которыми работает программа.
- Таблицы — основные объекты базы данных. С ними мы уже знакомы. В них хранятся данные. Реляционная база данных может иметь много взаимосвязанных таблиц.
- Запросы — это специальные структуры, предназначенные для обработки данных базы. С помощью запросов данные упорядочивают, фильтруют, отбирают, изменяют, объединяют, то есть обрабатывают.
- Формы — это объекты, с помощью которых в базу вводят новые данные или просматривают имеющиеся.
- Отчеты — это формы «наоборот». С их помощью данные выдают на принтер в удобном и наглядном виде.
- Макросы — это макрокоманды. Если какие-то операции с базой производятся особенно часто, имеет смысл сгруппировать несколько команд в один макрос и назначить его выделенной комбинации клавиш.
- Модули — это программные процедуры, написаны на языке Visual Basic. Если стандартных средств Access не хватает, программист может расширить возможности системы, написав для этого необходимые модули.
Режимы работы с Access
<£? Макросы <^£ Модули j Открыть |
Кнопка раскрывающего списка выбора типа поля |
С организационной точки зрения в работе с любой базой данных есть два разных режима:
- проектировочный и
- эксплуатационный (пользовательский).
Создатель базы имеет право создавать в ней новые объекты (например, таблицы), задавать их структуру, свойства полей, устанавливать необходимые связи. Он работает со структурой базы и имеет полный доступ к базе. У одной базы может быть один, два или несколько разработчиков.
Пользователь базы — это лицо, которое наполняет ее информацией с помощью форм, обрабатывает данные с помощью запросов и получает результат в виде результирующих таблиц или отчетов. У одной базы могут быть миллионы пользователей, и, конечно, доступ к структуре базы для них закрыт.
1. Взгляните на стартовое окно базы данных. Кроме шести вкладок для основных объектов оно содержит три командные кнопки: Открыть, Конструктор, Создать. С их помощью и выбирается режим работы с базой.
2. Кнопка Открыть открывает избранный объект. Если это таблица, ее можно просмотреть, внести новые записи или изменить те, что были внесены ранее.
3. Кнопка Конструктор тоже открывает избранный объект, но по-другому. Она открывает его структуру и позволяет править не ее содержимое, а устройство. Если это таблица, в нее можно вводить новые поля или изменять свойства существующих полей. Если это форма, в ней можно изменять или создавать элементы управления. Очевидно, что этот режим служит не для пользователей базы, а для ее разработчиков.
- Действие командной кнопки Создать соответствует ее названию Она служит для создания новых объектов. Этот элемент управления тоже предназначен для проектировщиков базы. Таблицы, запросы, формы и отчеты можно создавать несколькими разными способами: автоматически, вручную или с помощью Мастера.
Лекция 4
Таблицы. Создание таблиц
Таблицы — основные объекты базы данных. Без запросов, форм, отчетов и прочего можно обойтись, но если нет таблиц, то данные некуда записывать, а значит, нет и базы. Создание базы начинается с создания первой таблицы.
Создание таблицы состоит в задании ее полей и назначении их свойств. Оно начинается с щелчка на кнопке Создать в окне База данных.
1. Есть несколько способов создания новой таблицы, отличающихся уровнем автоматизации.
2. Самый «автоматичный» способ состоит в импорте таблиц из другой базы, может быть, даже созданной в другой системе. В зависимости от обстоятельств из импортируемой таблицы может поступить структура полей, их названия и свойства, а также и содержимое базы. Если что-то импортируется не совсем так, как надо, необходимые правки (например, в свойства полей) вносят вручную.
3. В тех случаях, когда речь идет о чужой таблице, которая находится на удаленном сервере и которую нельзя импортировать целиком, пользуются режимом Связь с таблицами. Это напоминает подключение к таблице для совместного использования ее данных.
4. Опытные разработчики пользуются Мастером таблиц. Это программа, ускоряющая создание структуры таблицы. Мастер задает ряд вопросов и, руководствуясь полученными ответами, создает структуру таблицы автоматически. Несмотря на то, что этот режим служит для упрощения работы, начинающим пользоваться им не рекомендуется, поскольку, не владея всей терминологией, легко запутаться в вопросах и ответах. Первые таблицы стоит попробовать создать вручную.
5. Пункт Режим таблицы открывает заготовку, в которой все поля имеют формальные имена: Поле1, Поле2… и т. д. и один стандартный текстовый тип. Такую таблицу можно сразу наполнять информацией.
6. Наиболее универсальный ручной метод предоставляет пункт Конструктор. В этом режиме можно самостоятельно задать имена полей, выбрать их тип и настроить свойства.
Для изменения свойств полей надо перейти в режим Конструктор щелчком на кнопке Вид. Чтобы вставить новое поле, надо установить указатель мыши на маркер поля и нажать клавишу INSERT. Чтобы удалить поле, его надо выделить и нажать клавишу DELETE. Закончив создание структуры, можно щелкнуть на кнопке Вид и перейти в Режим таблицы для заполнения ее данными.
Запросы на выборку
Существует немало различных видов запросов, но самые простые из них и, к тому же, используемые наиболее часто — это запросы на выборку.
Цель запроса на выборку состоит в создании результирующей таблицы, в которой отображаются только нужные по условию запроса данные из базовых таблиц.
Как и другие объекты Access , запросы можно создавать автоматически с помощью Мастера или вручную. И, как обычно, на этапе обучения лучше не пользоваться Мастером, чтобы почувствовать работу с запросами «кончиками пальцев».
Для создания запросов к базам данных существует специальный язык запросов. Он называется SQL (Structured Query Language — структурированный язык запросов). К счастью, те, кто пользуются СУБД Access , могут позволить себе не изучать этот язык. Вместо него в Access есть простое средство, которое называется бланком запроса по образцу. С его помощью можно сформировать запрос простыми приемами, перетаскивая элементы запроса между окнами.
Запросы на изменение
Выше мы говорили о том, что все виды запросов на выборку создают временные результирующие таблицы. Базовые таблицы при этом не изменяются. Тем не менее, специально для разработчиков баз данных существует особая группа запросов, которые называются запросами на изменение. Они позволяют автоматически создавать новые таблицы или изменять уже имеющиеся. Логика использования запросов на изменение такая:
• создается запрос на выборку, который отбирает данные из разных таблиц или сам создает новые данные путем вычислений;
• после запуска запроса образуется временная результирующая таблица;
• данные из этой временной таблицы используют для создания новых таблиц или изменения существующих.
Существует несколько видов запросов на изменение. Самый простой и понятный — это запрос на создание таблицы. Вернемся к примеру с расчетом среднего количества забитых мячей.
1. Предположим, что разработчик таблицы Итоги по командам захотел включить в нее поле Результативность. Конечно, он может рассчитать среднее количество мячей, забитых за игру каждой командой, но если ввести в таблицу такое поле, то его придется заполнять его вручную. Для таблиц, содержащих много записей, это решение неприемлемо.
2. Проще создать запрос на выборку, в который войдут все поля базовой таблицы плюс новое вычисляемое поле.
3. Щелчок на кнопке Вид позволяет убедиться, что запрос работает как положено и создает результирующую таблицу, более полную чем базовая. Теперь можно дать команду на создание новой базовой таблицы, равной результирующей.
4. Эта команда находится в меню Запрос, которое доступно только в режиме Конструктора.
5. В том же меню присутствуют команды для создания запросов на обновление данных, на добавление записей и на удаление записей. Все они относятся к запросам на изменение и работают аналогично, изменяя базовые таблицы в соответствии с данными результирующих таблиц.
Лекция 11.
Формы
Обычно разработчик базы данных создает структуру таблиц и запросов, но заполнением таблиц информацией он не занимается. Для этого есть специальные кадры (обычно малоквалифицированные), выполняющие функции наборщиков. Для упрощения их труда разработчик базы может подготовить специальные объекты — формы.
Форма представляет собой некий электронный бланк, в котором имеются поля для ввода данных. Наборщик вводит данные в эти поля, и данные автоматически заносятся в таблицы базы.
Зачем нужны формы?
Данные в таблицу можно вносить и без помощи каких-либо форм, но существуют, по крайней мере, четыре причины которые делают формы незаменимым средством ввода данных в базу.
- Малоквалифицированному персоналу нельзя предоставлять доступ к таблицам (самому ценному из того, что есть в базе) Представьте, что будет, если новичок «наведет порядок» в таблице банка, хранящей расчетные счета клиентов.
- Разные люди могут иметь разные права доступа к информации, хранящейся в таблицах. Например, один имеет право вводить только имена и адреса клиентов, другой – только номера их расчетных счетов, а третий — только денежные суммы, хранящиеся на этих счетах. Сговор между этими людьми должен быть исключен. Для ввода данных им предоставляют разные формы, хотя данные из форм могут поступать в одну таблицу.
- Ввод данных в таблицу – чрезвычайно утомительное занятие. Уже после нескольких часов работы люди делают ошибки. Ввод данных в форму проще. Здесь многое можно автоматизировать. К тому же, элементы управления форм настраивают таким образом, чтобы при вводе данных выполнялась их первичная проверка.
4. Информацию для баз данных берут из бумажных бланков: анкет, заявлений, накладных, счетов, описей, ведомостей, справок. Экранные формы можно сделать точной копией бумажных бланков, с которых происходит ввод данных. Благодаря этому во много раз уменьшается количество ошибок при вводе и значительно снижается утомляемость персонала.
Создание форм
Как и другие объекты Access, формы можно создавать вручную или автоматически, причем несколькими способами. При создании таблиц и запросов мы рекомендовали на первых порах автоматическими средствами не пользоваться, чтобы вникнуть в терминологию и подготовить себя к работе с Мастером, задающим непонятные для начинающих вопросы. С формами дело обстоит иначе. Они состоят из многочисленных элементов управления, и от того, насколько аккуратно эти элементы расположены на экране, зависит внешний вид формы.
Автоматические средства позволяют создавать аккуратные формы и не задают пользователю лишних вопросов. Начинать работу лучше с них.
Автоформы
1. Автоформы — самый простой вид автоматических форм. Для создания автоформы надо открыть вкладку Формы в диалоговом окне База данных и щелкнуть на кнопке Создать — откроется окно Новая форма.
2. В диалоговом окне Новая форма выбирают в качестве источника данных для формы какую-либо таблицу или запрос, после чего создают автоформу двойным щелчком в списке выбора вида автоформы (табличная, ленточная или в столбец).
Структура форм
Создавая формы автоматическими средствами, можно не задумываться над их структурой, но при разработке формы вручную со структурой приходится иметь дело.
Структуру формы составляют ее разделы, а разделы содержат элементы управления.
Разделы формы
1. Самый простой способ познакомиться с разделами формы состоит в том, чтобы взять готовую форму, например, созданную с помощью Мастера, и посмотреть ее устройство в режиме Конструктора. Как мы уже знаем, для этого надо щелкнуть на кнопке Вид на панели управления Access .
2. При просмотре в Конструкторе мы видим структуру формы. Обратите внимание на то, что рядом с ней открывается панель элементов, содержащая заготовки и инструменты для создания элементов управления формы.
3. В структуре формы четко видны три раздела: раздел заголовка формы, область данных и раздел примечания формы.
В нашем случае заполнена только область данных. Так произошло потому, что форму создавал Мастер, который не потрудился создать и заполнить вспомогательные разделы.
4. Все, что содержится в области данных, является элементами управления, В нашем случае здесь присутствуют элементы управления только двух типов: связанное поле (то, что в него вводится, поступает и в одноименное поле таблицы, на базе которой создана форма) и присоединенная надпись (называется так, поскольку перемещается вместе со своим элементом управления). В нашем случае содержание присоединенной надписи совпадает с названием связанного поля, но, как вы понимаете, это можно и изменить.
5. Фоновый рисунок, лежащий под элементами управления, показывает размер рабочего поля формы.
6. Размеры разделов и размеры рабочего поля формы можно изменять с помощью мыши. При наведении на границу раздела указатель меняет форму. В этот момент границу можно перемещать методом перетаскивания.
Лекция 12
Создание надписей
Редактирование форм состоит в создании новых или изменении имеющихся элементов управления, а также в изменении их взаимного расположения.
При рассмотрении приемов создания новых элементов управления мы воспользуемся тем фактом, что Мастер, создавший форму, не заполнил ее раздел заголовка.
1. Перетащив вниз разделительную границу между заголовком и областью данных, мы можем освободить вверху достаточно места для создания крупной надписи.
2. На панели элементов существует специальный элемент управления для создания заголовков, который называется Надпись.
3. Щелкнув на нем, а потом на форме, мы получаем текстовую рамку, в которую можно вводить произвольный текст. При вводе текста не надо заботиться о его форматировании. Неважно, как он выглядит и где расположен. Закончив ввод, надо нажать клавишу ENTER, после чего можно приступать к оформлению текста.
4. Для форматирования элемента управления его надо сначала выделить. Для этого служит инструмент Выбор объектов.
5. При выделении элемента управления вокруг него образуется рамка с восемью маркерами (по углам и по центрам сторон рамки). Рамку можно растягивать или сжимать методом перетаскивания границ. При наведении на маркер указатель мыши меняет форму, принимая изображение открытой ладони. В этот момент рамку можно перемещать.
6. Особую роль играет левый верхний маркер рамки. При наведении на него указатель мыши принимает форму указательного пальца. О роли этого маркера мы расскажем чуть позже.
7. Когда объект выделен, можно изменять параметры шрифта, метод выравнивания текста и другие элементы форматирования. Это выполняют обычными средствами форматирования, доступными через соответствующую панель инструментов Access.
8. Если щелкнуть на выделенном элементе правой кнопкой мыши, откроется его контекстное меню, в котором имеются дополнительные возможности изменения оформления. В нашем случае, например, применено Оформление с тенью
Лекция 13
Создание и редактирование связанных полей
1 Заголовок таблицы, который мы только что создали, не связан ни с одним из полей таблицы. Поэтому элемент управления Надпись еще называют свободным полем. Текст, введенный в него, остается неизменным независимо от того, какую запись в этот момент просматривают в форме.
2. Совсем иначе обстоит дело с элементами управления, в которых отображается содержимое полей таблицы. Такие элементы управления называют связанными полями.
3. Для их создания служит элемент Поле на панели элементов.
4. При создании связанного поля вместе с ним одновременно образуется еще один элемент управления – присоединенная надпись. Она перемещается вместе со связанным полем и образует с ним единое целое.
5. Обратите внимание на то, что, что слово «Результативность» в присоединенной надписи записано без последней буквы. Это не ошибка. Просто Мастер, создававший форму, сделал это неаккуратно, и связанное поле «наехало» на присоединенную надпись.
6. Оторвать поле от присоединенной надписи позволяет уже упомянутый маркер, расположенный в левом верхнем углу. При наведении на него указатель мыши принимает форму указательного пальца. В этот момент связанное поле можно оторвать от присоединенной надписи и перемещать отдельно.
Перемещать элементы управления и изменять их размеры с помощью мыши не слишком удобно. Гораздо удобнее использовать для этой цели курсорные клавиши в комбинации с клавишами SHIFT или CTRL. В первом случае происходит изменение размеров элемента управления, а во втором – изменение его расположения.
7. Чтобы элементы управления располагались в форме ровными рядами, существуют специальные команды выравнивания. Сначала надо выделить группу элементов управления с помощью инструмента Выбор объектов (группа выбирается принажатой клавише SHIFT), а потом дать команду Формат ► Выровнять и выбрать метод выравнивания.
Автоотчеты
Большая часть того, что было сказано о формах, относится и к отчетам. Выбрав в диалоговом окне База данных вкладку Отчеты и щелкнув на кнопке Создать, мы получаем диалоговое окно Новый отчет, позволяющее создать отчет автоматически (автоотчет), с помощью Мастера или вручную. Точно так же, как и с формами, с отчетами удобнее знакомиться в режиме автоматического создания. Создайте на основе любой таблицы автоотчет в столбец или ленточный. Операция настолько проста, что сводится к одному щелчку левой кнопки мыши.
Отчеты предназначены для вывода информации на принтер, поэтому для расчета расположения данных на печатной странице программа Access должна «знать» все необходимое об особенностях принтера. Эти данные Access получает от операционной системы. Соответственно, принтер в системе должен быть установлен. При отсутствии принтера отчеты создавать все-таки можно. Достаточно выполнить программную установку с помощью команды операционной системы: Пуск ► Настройка Принтеры ► Установка принтера, после чего зарегистрировать драйвер принтера, либо взяв его с гибкого диска, либо выбрав один из драйверов, прилагающихся к самой операционной системе.
Структура отчета
Как и формы, отчеты состоят из разделов, а разделы могут содержать элементы управления. Но, в отличие от форм, разделов в отчетах больше, а элементов управления, наоборот, меньше. Со структурой отчета проще всего ознакомиться, создав какой-либо автоотчет, а затем открыв его в режиме Конструктора.
1. Структура отчета состоит из пяти разделов: заголовка отчета, верхнего колонтитула, области данных, нижнего колонтитула и примечания отчета. По сравнению с формами новыми являются разделы верхнего и нижнего колонтитулов.
2. Раздел заголовка служит для печати общего заголовка отчета.
3 Раздел верхнего колонтитула можно использовать для печати подзаголовков, если отчет имеет сложную структуру и занимает много страниц. Здесь можно также помещать и колонцифры (номера страниц), если это не сделано в нижнем колонтитуле.
4 В области данных размещают элементы управления, связанные с содержимым полей таблиц базы. В эти элементы Управления выдаются данные из таблиц для печати на принтере. Порядок размещения и выравнивания элементов управления тот же, что и при создании структуры форм.
5 Раздел нижнего колонтитула используют для тех же целей что и раздел верхнего колонтитула. В нашем случае в нем размещены два элемента управления.
6 В первом элементе управления выводится текущая дата. Для этого использована встроенная в Access функция Now(). Она возвращает текущую дату и помещает ее в поле, а отчет воспроизводит ее при печати.
7 Во втором элементе управления выводится номер страницы и общее количество страниц. Для их определения использованы встроенные функции Page() и Pages(). Тот текст, который записан в кавычках, воспроизводится «буквально», а оператор & служит для «склеивания» текста, заключенного в кавычки, со значениями, возвращаемыми функциями. Оператор & называется оператором конкатенации.
8 Раздел примечания используют для размещения дополнительной информации. В нашем примере он не использован.
Лекция 15
Закрепление пройденного
Системы управления базами данных (СУБД) — это специальные программные средства, предназначенные для работы с файлами баз данных (файлами специального формата, содержащими информацию, структурированную заданным образом).
Современные СУБД позволяют хранить в виде файлов данные любых типов: числовые, текстовые, графические, звуковые, видео и прочие.
Данные в базах хранятся в виде таблиц. Каждая таблица имеет структуру.
Структура таблицы определяется составом ее полей и их свойствами. Важнейшими свойствами полей являются: тип поля и размер поля. Для хранения разных типов данных используют поля соответствующих типов.
Данные, хранящиеся в таблице, можно изменять, удалять, сортировать, фильтровать, размножать и выполнять с ними другие операции.
mysql — Как отобразить таблицу базы данных в таблице на странице JSP
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
.
Список таблиц в базе данных MySQL
Резюме : в этом руководстве вы узнаете, как использовать команду MySQL SHOW TABLES для запроса таблиц в конкретной базе данных.
Чтобы перечислить таблицы в базе данных MySQL, выполните следующие действия:
- Войдите на сервер базы данных MySQL с помощью клиента MySQL, такого как
mysql
- Переключитесь на конкретную базу данных с помощью оператора
USE
. - Используйте команду
SHOW TABLES
.
Ниже показан синтаксис команды MySQL SHOW TABLES
:
SHOW TABLES;
MySQL Примеры SHOW TABLES
В следующем примере показано, как вывести список таблиц в базе данных classicmodels
.
Шаг 1. Подключитесь к серверу базы данных MySQL:
> mysql -u root -p Введите пароль: ********** mysql>
Шаг 2. Переключитесь на classicmodels
базу данных:
mysql> используйте classicmodels; База данных изменена mysql>
Шаг 3.Показать таблицы в базе данных classicmodels
:
> показать таблицы; + ------------------------- + | Tables_in_classicmodels | + ------------------------- + | клиенты | | сотрудники | | офисы | | детали заказа | | заказы | | платежи | | продуктовые линейки | | продукты | + ------------------------- + 8 рядов в наборе (0,00 сек)
Команда SHOW TABLES
позволяет показать, является ли таблица базовой таблицей или представлением.Чтобы включить в результат тип таблицы, используйте следующую форму оператора SHOW TABLES
.
ПОКАЗАТЬ ПОЛНЫЕ ТАБЛИЦЫ;
Давайте создадим представление в базе данных classicmodels
под названием контактов
, которое включает в себя имя, фамилию и телефон из таблиц сотрудников
и клиентов
для демонстрации.
СОЗДАТЬ ПРОСМОТР контакты КАК ВЫБЕРИТЕ lastName, firstName, добавочный номер как телефон ОТ сотрудников СОЮЗ ВЫБЕРИТЕ contactFirstName, contactLastName, телефон ОТ клиентов;
Теперь вы вводите команду SHOW FULL TABLES
:
> SHOW FULL TABLES + ------------------------- + ------------ + | Tables_in_classicmodels | Table_type | + ------------------------- + ------------ + | контакты | ПРОСМОТР | | клиенты | ОСНОВНАЯ ТАБЛИЦА | | сотрудники | ОСНОВНАЯ ТАБЛИЦА | | офисы | ОСНОВНАЯ ТАБЛИЦА | | детали заказа | ОСНОВНАЯ ТАБЛИЦА | | заказы | ОСНОВНАЯ ТАБЛИЦА | | платежи | ОСНОВНАЯ ТАБЛИЦА | | продуктовые линейки | ОСНОВНАЯ ТАБЛИЦА | | продукты | ОСНОВНАЯ ТАБЛИЦА | + ------------------------- + ------------ + 9 рядов в наборе (0.00 сек)
Как видите, все таблицы являются базовыми, за исключением таблицы контактов
, которая является представлением.
Для базы данных, в которой много таблиц, отображение всех таблиц одновременно может быть не интуитивно понятным.
К счастью, команда SHOW TABLES
предоставляет вам возможность фильтровать возвращаемые таблицы с помощью оператора LIKE
или выражения в предложении WHERE
следующим образом:
SHOW TABLES LIKE pattern; ПОКАЗАТЬ ТАБЛИЦЫ ГДЕ выражение;
Например, чтобы показать все таблицы в базе данных classicmodels
, которые начинаются с буквы p
, вы используете следующий оператор:
> ПОКАЗАТЬ ТАБЛИЦЫ КАК 'p%'; + ------------------------------ + | Таблицы_в_классических моделях (p%) | + ------------------------------ + | платежи | | продуктовые линейки | | продукты | + ------------------------------ + 3 ряда в наборе (0.00 сек)
Или, чтобы показать таблицы, заканчивающиеся строкой 'es'
, вы используете следующий оператор:
> ПОКАЗАТЬ ТАБЛИЦЫ LIKE '% es'; + ------------------------------- + | Tables_in_classicmodels (% es) | + ------------------------------- + | сотрудники | | офисы | | продуктовые линейки | + ------------------------------- + 3 ряда в наборе (0,00 сек)
Следующий оператор показывает, как использовать предложение WHERE
в операторе SHOW TABLES
для перечисления всех представлений в базе данных classicmodels
.
> ПОКАЗАТЬ ПОЛНЫЕ ТАБЛИЦЫ, ГДЕ table_type = 'VIEW'; + ------------------------- + ------------ + | Tables_in_classicmodels | Table_type | + ------------------------- + ------------ + | контакты | ПРОСМОТР | + ------------------------- + ------------ + 1 ряд в наборе (0,00 сек)
Иногда вам нужно увидеть таблицы в базе данных, к которым вы не подключены. В этом случае вы можете использовать предложение FROM
оператора SHOW TABLES
, чтобы указать базу данных, из которой вы хотите отображать таблицы.
В следующем примере показано, как показать таблицы, которые начинаются с «время»
;
> ПОКАЗАТЬ ТАБЛИЦЫ ИЗ mysql КАК 'time%'; + --------------------------- + | Tables_in_mysql (время%) | + --------------------------- + | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | + --------------------------- + 5 рядов в наборе (0,00 сек)
Следующий оператор эквивалентен приведенному выше, но в нем используется IN
вместо FROM
.
ПОКАЗАТЬ ТАБЛИЦЫ В mysql, как 'time%';
Важно отметить, что если у вас нет прав для базовой таблицы или представления, они не будут отображаться в наборе результатов команды SHOW TABLES
.
В этом руководстве вы узнали, как использовать оператор MySQL SHOW TABLES
для вывода списка всех таблиц в конкретной базе данных.
- Было ли это руководство полезным?
- Да Нет
.
Рекомендации по базе данных таблиц пользователей
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
.
Database Structure and Design Tutorial
Теперь, когда таблицы базы данных преобразованы в таблицы, вы готовы анализировать взаимосвязи между этими таблицами. Количество элементов относится к количеству элементов, которые взаимодействуют между двумя связанными таблицами. Определение количества элементов помогает убедиться, что вы разбили данные на таблицы наиболее эффективно.
Каждая сущность потенциально может иметь отношения друг с другом, но эти отношения обычно относятся к одному из трех типов:
Один к одному
Когда существует только один экземпляр сущности A для каждого экземпляра сущности B, они говорят, что они имеют отношения один-к-одному (часто пишется 1: 1).Вы можете обозначить этот вид отношений на диаграмме ER с помощью линии с тире на каждом конце:
Если у вас нет веской причины не делать этого, соотношение 1: 1 обычно указывает на то, что вам лучше объединить две таблицы. ‘данные в единую таблицу.
Однако вы можете захотеть создать таблицы с отношением 1: 1 при определенных обстоятельствах. Если у вас есть поле с дополнительными данными, такими как «описание», которое пусто для многих записей, вы можете переместить все описания в их собственную таблицу, исключив пустое пространство и повысив производительность базы данных.
Чтобы гарантировать правильное совпадение данных, вам нужно будет включить хотя бы один идентичный столбец в каждую таблицу, скорее всего, первичный ключ.
Отношения «один ко многим»
Эти отношения возникают, когда запись в одной таблице связана с несколькими записями в другой. Например, один клиент мог разместить много заказов, или посетитель может получить сразу несколько книг из библиотеки. Отношения «один ко многим» (1: M) обозначаются так называемой «нотацией гусиных лапок», как в этом примере:
Чтобы реализовать отношение 1: M при настройке базы данных, просто добавьте первичный ключ из «Одна» сторона отношения как атрибут в другой таблице.Когда первичный ключ указан в другой таблице таким образом, он называется внешним ключом. Таблица на стороне отношения «1» считается родительской таблицей по отношению к дочерней таблице на другой стороне.
Отношения «многие ко многим»
Когда несколько сущностей из таблицы могут быть связаны с несколькими сущностями в другой таблице, они, как говорят, имеют отношение «многие ко многим» (M: N). Это может произойти с учениками и классами, поскольку ученик может посещать много уроков, а в классе может быть много учеников.
На диаграмме ER эти отношения изображены следующими линиями:
К сожалению, напрямую реализовать этот вид отношений в базе данных невозможно. Вместо этого вам нужно разбить его на два отношения «один ко многим».
Для этого создайте новый объект между этими двумя таблицами. Если между продажами и продуктами существует связь M: N, вы можете назвать эту новую сущность «sold_products», так как она будет отображать содержимое каждой продажи. И таблицы продаж, и таблицы продуктов будут иметь отношение 1: M с sold_products.Этот вид промежуточной сущности в различных моделях называется таблицей ссылок, ассоциативной сущностью или таблицей соединений.
Каждая запись в таблице ссылок будет соответствовать двум объектам в соседних таблицах (она также может включать дополнительную информацию). Например, таблица связей между учениками и классами может выглядеть так:
Обязательно или нет?
Другой способ анализа отношений — это рассмотреть, какая сторона отношения должна существовать, чтобы существовала другая.Необязательную сторону можно обозначить кружком на линии, где будет тире. Например, страна должна существовать, чтобы иметь представителя в Организации Объединенных Наций, но обратное неверно:
Два субъекта могут быть взаимозависимыми (одно не может существовать без другого).
Рекурсивные отношения
Иногда таблица указывает на себя. Например, таблица сотрудников может иметь атрибут «менеджер», который относится к другому человеку в той же таблице.Это называется рекурсивным отношением.
Отношения с избыточностью
Отношения с избыточностью — это отношения, которые выражаются более одного раза. Как правило, вы можете удалить одно из отношений без потери важной информации. Например, если объект «ученики» имеет прямые отношения с другим, называемым «учителями», но также имеет отношения с учителями косвенно через «классы», вам нужно удалить связь между «учениками» и «учителями». Лучше удалить эту связь, потому что единственный способ, которым учащихся назначают учителям, — это классы.
.