Ядром
любой базы данных есть
модель данных. Модель
данных
представляет собой великое множество
структур данных, ограничений целостности
и операций манипулирования
данными. С помощью модели данных могут
быть представленные объекты предметной
области, взаимосвязи между ними.
Модель
данных
- это совокупность структур данных и
операций их обработки. Современная СУБД
базируется на использовании иерархической,
сетевой, реляционной
и
объектно-ориентированной
моделях
данных, комбинации этих моделей или на
некотором их подмножестве.
Рассмотрим
три основных типа моделей данных:
иерархическую, сетевую,
реляционнную
и
объектно-ориентированную.
Иерархическая
модель данных.
Иерархическая структура представляет
совокупность элементов, связанных между
собою
по определенным правилам. Объекты,
связанные иерархическими отношениями,
образовывают ориентированный граф
(перевернутое дерево). К основным понятиям
иерархической структуры относятся:
уровень, элемент (узел), связь. Иерархическую
модель организовывает данные в виде
древовидной структуры. Узел
- это совокупность атрибутов данных,
которые описывают некоторый объект. На
схеме иерархического дерева узлы имеют
вид вершин графа. Каждый узел на более
низком
уровне
связан только с
одним узлом, который
находится на более
высоком уровне. Иерархическое дерево
имеет только одну вершину (корень
дерева),
которая не подчинена никакой другой
вершине. Зависимые (подчиненные) узлы
находятся на втором, третьем и других
уровнях. Количество деревьев в
базе
данных определяется числом корневых
записей.
Сетевая
модель данных.
Сетевая
модель означает представление данных
в виде произвольного графа. Достоинством
сетевой и иерархической моделей данных
является возможность их эффективной
реализации по показателям затрат памяти
и оперативности. Недостатком сетевой
модели данных является высокая сложность
и жесткость схемы БД, построенной на ее
основе.
Реляционная
модель данных.
Понятие реляционный
(англ. relation
- отношение)
связан
с
разработками известного американского
специалиста в
области систем баз данных Э.Ф. Кодда.
Эти модели характеризуются простотой
структуры данных, удобной для пользователя
формой представления в виде таблиц и
возможностью использования аппарата
алгебры отношений и реляционного
вычисления для обработки данных.
На
языке математики отношение
определяется таким образом. Пусть задано
n
множеств D1,D2, ...,Dn.
Тогда R есть отношение
над этими множествами, если R есть
множеством упорядоченных наборов вида
, где d1 - элемент с
D1 , d2 - элемент с
D2
, ... , dn
- элемент с
Dn. При этом наборы вида
называются кортежами, а
множества D1,D2, ...Dn - доменами.
Каждый кортеж состоит из элементов,
которые выбираются из
своих доменов.
Эти элементы называются атрибутами, а
их значения - значениями атрибутов.
Итак,
реляционнная
модель ориентирована на организацию
данных в виде двумерных таблиц, любая
из
которых имеет следующие свойства:
Каждый элемент таблицы - это один элемент
данных;
Все столбцы в
таблицы
- однородные, т.е
все элементы в
столбце
имеют одинаковый тип (символьный,
числовой и т.п.);
Каждый столбец носит уникальное имя;
Одинаковые строки в
таблицы
отсутствуют.
Таблицы
имеют строки, которые отвечают
записям (или кортежам), а столбцы
-атрибутам отношений (доменам,
полям).
Следующие
термины являются эквивалентными:
отношение
,
таблица, файл (для локальных
БД
);
кортеж,
строка
,
запись;
атрибут,
столбик, поле.
Объектно-ориентированные
БД
объединяют в себе две модели данных,
реляционную и сетевую, и используются
для создания крупных БД со сложными
структурами данных.
Реляционная
БД
есть
совокупностью отношений, которые
содержат всю необходимую информацию и
объединенную разными связями.
БД
считается нормализованной
,
если выполняются следующие условия:
Каждая таблица имеет главный
ключ;
Все поля каждой таблицы зависят только
от главного
ключа;
В таблицах отсутствуют группы повторных
значений.
Для
успешной работы с многотабличными БД,
как правило, надо установить между ними
связи. При этом пользуются терминами
“базовая таблица» (главная) и “подчиненная
таблица». Связь между таблицами получается
благодаря двум полям, одно из которых
находится в базовой таблице, а второе
- в подчиненной. Эти поля могут иметь
значение,
которое повторяются. Если
значение
в связанном поле записи базовой таблицы
и в поле подчиненной совпадают, то эти
записи называются связанными.
Существуют
четыре типа отношений между таблицами:
один
к одному
,
один
ко многим, много к одному, много ко
многим
.
Отношение
один
к одному
означает,
что каждая запись в одной
таблице
соответствует только
одной
записи в другой таблице.
Отношение
один ко многим
означает, что одна
запись из первой таблицы может быть
связана более
чем с одной
записью
из другой таблицы.
Главная
таблица
– это таблица, которая содержит первичный
ключ
и составляет часть один
в отношении один
ко многим
.
Внешний
ключ
– это поле, содержащее такой же тип
информации в таблице со стороны много
.
Практическая
работа
HTML-списки
используются для группировки связанных между собой фрагментов информации. Существует три вида списков:
маркированный список
—
— каждый элемент списка
отмечается маркером, нумерованный список
— — каждый элемент списка
отмечается цифрой, список определений
— — состоит из пар термин
—
определение.
Каждый список представляет собой контейнер, внутри которого располагаются элементы списка или пары термин-определение. Элементы списка ведут себя как блочные элементы, располагаясь друг под другом и занимая всю ширину блока-контейнера. Каждый элемент списка имеет дополнительный блок, расположенный сбоку, который не участвует в компоновке.
Создание HTML-списков
1. Маркированный список
Маркированный список
представляет собой неупорядоченный список (от англ. Unordered List)
. Создаётся с помощью парного тега
. В качестве маркера элемента списка выступает метка, например, закрашенный кружок.
Браузеры по умолчанию добавляют следующее форматирование блоку списка:
Каждый элемент списка создаётся с помощью парного тега
(от англ. List Item)
.
доступны .
Microsoft
Google
Apple
Рис. 1. Маркированный список
2. Нумерованный список
Нумерованный список
создаётся с помощью парного тега . Каждый пункт списка также создаётся с помощью элемента
. Браузер нумерует элементы по порядку автоматически и если удалить один или несколько элементов такого списка, то остальные номера будут автоматически пересчитаны.
Блок списка также имеет стили браузера по умолчанию:
доступен атрибут value , который позволяет изменить номер по умолчанию для выбранного элемента списка. Например, если для первого пункта списка задать
, то остальная нумерация будет пересчитана относительно нового значения.
Для тега
доступны следующие атрибуты:
Таблица 1. Атрибуты тега
Атрибут
Описание, принимаемое значение
reversed
Атрибут reversed задает отображение списка в обратном порядке (например, 9, 8, 7…).
start
Атрибут start задает начальное значение, от которого пойдет отсчет нумерации, например, конструкция первому пункту присвоит порядковый номер «10». Также можно одновременно задавать тип нумерации, например, .
type
Атрибут type задает вид маркера для использования в списке (в виде букв или цифр). Принимаемые значения:
1 — значение по умолчанию, десятичная нумерация.
A — нумерация списка в алфавитном порядке, заглавные буквы (A, B, C, D).
a — нумерация списка в алфавитном порядке, строчные буквы (a, b, c, d).
I — нумерация римскими заглавными цифрами (I, II, III, IV).
i — нумерация римскими строчными цифрами (i, ii, iii, iv).
Microsoft
Google
Apple
Рис. 2. Нумерованный список
3. Список определений
Списки определений
создаются с помощью тега
. Для добавления термина применяется тег , а для вставки определения — тег .
Блок списка определений имеет следующие стили браузера по умолчанию:
Для тегов
,
и
доступны .
Режиссер:
Петр Точилин
В ролях:
Андрей Гайдулян
Алексей Гаврилов
Виталий Гогунский
Мария Кожевникова
Рис. 3. Список определений
4. Вложенный список
Зачастую возможностей простых списков не хватает, например, при создании оглавления никак не обойтись без вложенных пунктов
. Разметка для вложенного списка будет следующей:
Пункт 1.
Пункт 2.
Подпункт 2.1.
Подпункт 2.2.
Подпункт 2.2.1.
Подпункт 2.2.2.
Подпункт 2.3.
Пункт 3.
Рис. 4. Вложенный список
5. Многоуровневый нумерованный список
Многоуровневый список используется для отображения элементов списка на разных уровнях с различными отступами. Разметка для многоуровневого нумерованного списка будет следующей:
пункт
пункт
пункт
пункт
пункт
пункт
пункт
пункт
пункт
пункт
пункт
Такая разметка по умолчанию создаст для каждого вложенного списка новую нумерацию, начинающуюся с единицы. Чтобы сделать вложенную нумерацию, нужно использовать следующие свойства:
counter-reset сбрасывает один или несколько счётчиков, задавая значение для сброса;
counter-increment задаёт значение приращения счётчика, т.е. с каким шагом будет нумероваться каждый последующий пункт;
content — генерируемое содержимое, в данном случае отвечает за вывод номера перед каждым пунктом списка.
Ol {
/* убираем стандартную нумерацию */
list-style: none;
/* Идентифицируем счетчик и даем ему имя li. Значение счетчика не указано - по умолчанию оно равно 0 */
counter-reset: li;
}
li:before {
/* Определяем элемент, который будет нумероваться — li. Псевдоэлемент before указывает, что содержимое, вставляемое при помощи свойства content, будет располагаться перед пунктами списка. Здесь же устанавливается значение приращения счетчика (по умолчанию равно 1). */
counter-increment: li;
/* С помощью свойства content выводится номер пункта списка. counters() означает, что генерируемый текст представляет собой значения всех счетчиков с таким именем. Точка в кавычках добавляет разделяющую точку между цифрами, а точка с пробелом добавляется перед содержимым каждого пункта списка */
content: counters(li,".") ". ";
}
Рис. 5. Многоуровневый нумерованный список
Списки делают информацию более наглядной и удобной для восприятия. Например, вы составляете список покупок, берете лист бумаги и пишите:
Молоко.
Хлеб.
Колбаса.
Яйцо.
Но, скорее всего, вы не станете писать: молоко, хлеб, колбаса, яйцо, по той простой причине, что это будет нечитабельно и в магазине вам будет не очень удобно вычеркивать купленное или просто просматривать такой список покупок.
Так же и в HTML: списки используются для того, чтобы сделать информацию удобной к восприятию и более читабельной, это первое и главное назначение списков в HTML
. Второе применение спискам нашли верстальщики, которые используя списки и оформляя их при помощи CSS, создают самые разнообразные и интересные меню на сайте.
Отметим, что для дополнительного акцентирования на элементах списка можно использовать и тэги логического форматирования, которые позволяют показать .
Виды списков в HTML
Списки в HTML делятся на несколько видов: маркированные HTML списки
, упорядоченные или нумерованные HTML списки
, списки определений и списки директорий, которые на данный момент являются запрещенными в стандарте HTML 4.01. Стандарт HTML 5 поддерживает еще список меню, о котором мы поговорим подробнее, когда доберемся до HTML 5, отметим, что HTML 4.01 считает тэг