Описание логической и физической моделей базы данных
В качестве модели данных для проектируемой системы была выбрана реляционная модель. Исходя из выбранной модели данных, была спроектирована с помощью CASE - средства ERwin 4.1 и экспортированных данных из модели DFD схема логической модели данных, представленная ниже(см.рис.3.1)[5].

Рис. 3.1 Схема логической модели сущность-связь
На основании спроектированной логической модели данных, был проведен соответствующий анализ, в ходе которого были выявлены следующие сущности (отношения):
– stat_adminsessions - хранит информацию о работе пользователей с системой;
– stat_cities - справочник, содержит данные о городах России;
– stat_config - хранит настройки системы;
– stat_countries - справочник, содержит данные о странах;
– stat_datas - справочник, содержит данные, необходимые для определения роботов, поисковых систем, каталогах, рейтингах, почтовых систем, браузера посетителя и операционной системы посетителя;
– stat_datasuser - справочник, содержит пользовательские данные, необходимые для отслеживания целей и анализа рекламных кампаний;
– stat_ip2city - справочник, содержит данные о диапазоне IP-адресов для определения города посетителя;
– stat_ip2country - справочник, содержит данные о диапазоне IP-адресов для определения страны посетителя;
– stat_languages - справочник, содержит данные о языках;
– stat_log - хранит статистику о посещении сайта пользователем;
– stat_logrobots - хранит статистику о посещении сайта роботами;
– stat_regions - справочник, содержит данные о регионах России;
– stat_sessions - хранит данные о сессиях посетителей;
– stat_total - хранит рассчитанные данные о количестве просмотров, хитов, хостов и пользователей сайта;
– stat_users - хранит данные о пользователях сайта.
Более подробное описание данных сущностей приведено в таблицах 3.1 - 3.15
Таблица 3.1 - Таблица stat_adminsessions
| Поле
| Тип
| Ноль
| Комментарий
| | Hash
| varchar (32)
| нет
| Хэш пользователя системы (PK)
| | Login
| varchar (20)
| нет
| Логин пользователя системы (FK)
| | time_first
| datetime
| нет
| Время захода в систему
| | time_last
| datetime
| нет
| Время просмотра последнего отчета
| | Ip
| varchar (64)
| нет
| IP-адрес пользователя системы
| | C
| int (10)
| нет
| Количество просмотренных отчетов
|
Таблица 3.2 - Таблица stat_cities
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| smallint (5)
| нет
| Идентификатор города (PK)
| | Region
| smallint (5)
| нет
| Идентификатор региона (FK)
| | Name
| varchar (255)
| нет
| Название города
|
Таблица 3.3 - Таблица stat_regions
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| smallint (5)
| нет
| Идентификатор региона (PK)
| | Name
| varchar (255)
| нет
| Название региона
|
Таблица 3.4 - Таблица stat_config
| Поле
| Тип
| Ноль
| Комментарий
| | Variable
| varchar (50)
| нет
| Название переменной (PK)
| | Value
| varchar (255)
| нет
| Значение переменной
|
Таблица 3.5 - Таблица stat_countries
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| smallint (5)
| нет
| Идентификатор страны (PK)
| | Domain
| char (2)
| нет
| Сокращенное обозначение страны
| | Name
| varchar (255)
| нет
| Название страны
|
Таблица 3.6 - Таблица stat_datas
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| int (10)
| нет
| Идентификатор данных (PK)
| | type
| enum ('', 'dm', 'br', 'os', 'ct', 'ss', 'rb', 'tp', 'ml')
| нет
| Тип данных
| | Name
| varchar (100)
| нет
| Наименование для отображения в отчете
| | d1
| varchar (255)
| нет
| Условие поиска 1
| | d2
| varchar (255)
| нет
| Условие поиска 2
| | d3
| varchar (255)
| нет
| Условие поиска 3
|
Таблица 3.7 - Таблица stat_datasuser
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| int (10)
| нет
| Идентификатор пользовательских данных (PK)
| | Type
| enum ('', 'dm', 'pr', 'kn', 'cl', 'rk')
| нет
| Тип пользовательских данных
| | Name
| varchar (100)
| нет
| Наименование для отображения в отчете
| | d1
| varchar (255)
| нет
| Условие поиска
|
Таблица 3.8 - Таблица stat_ip2city
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| int (10)
| нет
| Идентификатор записи (PK)
| | ip_start
| int (10)
| нет
| Начало диапазона ip-адресов
| | ip_end
| int (10)
| нет
| Конец диапазона ip-адресов
| | City
| smallint (5)
| нет
| Идентификатор города (FK)
|
Таблица 3.9 - Таблица stat_ip2country
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| int (10)
| нет
| Идентификатор записи (PK)
| | ip_start
| int (10)
| нет
| Начало диапазона ip-адресов
| | ip_end
| int (10)
| нет
| Конец диапазона ip-адресов
| | Country
| smallint (5)
| нет
| Идентификатор страны (FK)
|
Таблица 3.10 - Таблица stat_languages
| Поле
| Тип
| Ноль
| Комментарий
| | Code
| char (2)
| нет
| Идентификатор языка (PK)
| | Eng
| varchar (50)
| нет
| Английское наименование языка
| | Rus
| varchar (50)
| нет
| Русское наименование языка
|
Таблица 3.11 - Таблица stat_log
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| int (10)
| нет
| Идентификатор лога (PK)
| | id_session
| varchar (32)
| нет
| Идентификатор сессии (FK)
| | id_user
| int (10)
| нет
| Идентификатор посетителя (FK)
| | Ip
| int (10)
| нет
| IP-адрес посетителя
| | Proxy
| int (10)
| да
| Прокси сервер посетителя
| | ref_domain
| varchar (50)
| да
| Ссылающийся домен
| | ref_page
| varchar (255)
| да
| Ссылающаяся страница
| | ref_pagequery
| varchar (255)
| да
| Ссылающаяся строка запроса
| | ref_catalog
| int (10)
| да
| Ссылающийся каталог
| | ref_search_sys
| int (10)
| да
| Ссылающаяся поисковая система
| | ref_search_query
| varchar (255)
| да
| Ссылающаяся поисковая фраза
| | ref_mail_sys
| int (10)
| да
| Ссылающаяся почтовая система
| | ref_rating
| int (10)
| да
| Ссылающийся рейтинг
| | Agent
| varchar (255)
| да
| Поле заголовка User-Agent
| | Browser
| int (10)
| да
| Браузер посетителя (FK)
| | Os
| int (10)
| да
| Операционная система посетителя (FK)
| | Acceptlang
| varchar (100)
| да
| Языковая метка поля Accept-Languages браузера
| | Date
| int (8)
| нет
| Дата посещения
| | Time
| mediumint (6)
| нет
| Время посещения
| | Domain
| varchar (30)
| нет
| Посещенный домен
| | request_uri
| varchar (255)
| нет
| URI, который был задан для доступа к странице
| | Page
| varchar (20)
| нет
| Посещенная страница
| | Titlepage
| varchar (255)
| нет
| Заголовок посещенной страницы
| | page_rateload
| float
| нет
| Время загрузки страницы
| | Existspage
| enum ('Y', 'N')
| нет
| Наличие страницы
| | City
| smallint (5)
| да
| Город посетителя (FK)
| | Country
| smallint (5)
| да
| Страна посетителя (FK)
|
Таблица 3.12 - Таблица stat_logrobots
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| int (10)
| нет
| Идентификатор лога роботов (PK)
| | id_robot
| int (10)
| нет
| Идентификатор робота (FK)
| | Ip
| int (10)
| нет
| IP-адрес робота
| | Agent
| varchar (255)
| нет
| Поле заголовка User-Agent
| | Date
| int (8)
| нет
| Дата посещения
| | Time
| mediumint (6)
| нет
| Время посещения
| | Domain
| varchar (30)
| нет
| Посещенный домен
| | request_uri
| varchar (255)
| нет
| URI, который был задан для доступа к странице
| | Page
| varchar (20)
| нет
| Посещенная страница
| | Titlepage
| varchar (255)
| нет
| Заголовок посещенной страницы
| | Existspage
| enum ('Y', 'N')
| нет
| Наличие страницы
|
Таблица 3.13 - Таблица stat_sessions
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| varchar (32)
| нет
| Идентификатор сессии (PK)
| | id_user
| int (10)
| нет
| Идентификатор посетителя (FK)
| | Timestamp
| int (10)
| нет
| Время последнего обновления страницы в UNIX формате
|
Таблица 3.14 - Таблица stat_total
| Поле
| Тип
| Ноль
| Комментарий
| | Date
| int (8)
| нет
| Дата расчета (PK)
| | Views
| int (10)
| нет
| Количество просмотров
| | Hits
| int (10)
| нет
| Количество хитов
| | Hosts
| int (10)
| нет
| Количество хостов
| | Users
| int (10)
| нет
| Количество пользователей
|
Таблица 3.15 - Таблица stat_users
| Поле
| Тип
| Ноль
| Комментарий
| | Id
| int (10)
| нет
| Идентификатор посетителя (PK)
| | id_user_reg
| int (10)
| да
| Идентификатор регистрации посетителя (FK)
| | ip_first
| int (10)
| нет
| IP-адрес первого посещения
| | date_first
| int (8)
| нет
| Дата первого посещения
| | time_first
| mediumint (6)
| нет
| Время первого посещения
| | domain_first
| varchar (30)
| нет
| Домен первого посещения
| | request_uri_first
| varchar (255)
| нет
| URI первого посещения, который был задан для доступа к странице
| | page_first
| varchar (20)
| нет
| Страница первого посещения
| | ref_domain_first
| varchar (255)
| да
| Ссылающийся домен первого посещения
| | ref_page_first
| varchar (255)
| да
| Ссылающаяся страница первого посещения
| | ref_pagequery_first
| varchar (255)
| да
| Ссылающаяся строка запроса первого посещения
| | ref_catalog_first
| tinyint (3)
| да
| Ссылающийся каталог первого посещения
| | ref_search_sys_first
| tinyint (3)
| да
| Ссылающаяся поисковая система первого посещения
| | ref_search_query_first
| varchar (255)
| да
| Ссылающаяся поисковая фраза первого посещения
| | ref_mail_sys_first
| tinyint (3)
| да
| Ссылающаяся почтовая система первого посещения
| | ref_rating_first
| tinyint (3)
| да
| Ссылающийся рейтинг первого посещения
| | Screensize
| varchar (10)
| да
| Разрешение экрана посетителя
| | colorsdepth
| varchar (5)
| да
| Глубина цвета посетителя
| | Cookies
| enum ('Y', 'N')
| нет
| Проверка включения cookies
| | Java
| enum ('Y', 'N')
| нет
| Проверка включения java
| | Javascript
| varchar (5)
| да
| Проверка включения javascript
| | ip_last
| int (10)
| нет
| IP-адрес последнего посещения
| | date_last
| int (8)
| нет
| Дата последнего посещения
| | time_last
| mediumint (6)
| нет
| Время последнего посещения
| | request_uri_last
| varchar (255)
| нет
| URI последнего посещения, который был задан для доступа к странице
| | page_last
| varchar (20)
| нет
| Страница последнего посещения
|
При проектировании базы данных определены связи между таблицами, первичные (Primary) и внешние (Foreign) ключи. Анализ ключей и связей между сущностями приведён в таблице 3.16
Таблица 3.16 - Анализ ключей и связей между сущностями
| Сущности
| Связь
| Добавленное поле
| Таблица
| Primary Key
| Foreign Key
| | stat_log
| M
| id_user
| stat_log
| id
| id_user
| | stat_users
|
|
| stat_users
| id
|
| | stat_log
| M
| browser
| stat_log
| id
| browser
| | stat_datas
|
|
| stat_datas
| id
|
| | stat_log
| M
| os
| stat_log
| id
|
| | stat_datas
|
|
| stat_datas
| id
| os
| | stat_log
| M
| city
| stat_log
| id
| city
| | stat_cities
|
|
| stat_cities
| id
|
| | stat_log
| M
| country
| stat_log
| id
| country
| | stat_countries
|
|
| stat_countries
| id
|
| | stat_cities
| M
| region
| stat_ cities
| id
| region
| | stat_regions
|
|
| stat_ regions
| id
|
| | stat_logrobots
| M
| id_robot
| stat_logrobots
| id
| id_robot
| | stat_datas
|
|
| stat_datas
| id
|
| | stat_users
| M
| id_user_reg
| stat_users
| id
| id_user_reg
| | Author
|
|
| author
| id
|
| | stat_users
| M
| ref_catalog_first
| stat_users
| id
| ref_catalog_first
| | stat_datas
|
|
| stat_datas
| id
|
| | stat_users
| M
| ref_search_sys_first
| stat_users
| id
| ref_search_sys_first
| | stat_datas
|
|
| stat_datas
| id
|
| | stat_users
| M
| ref_mail_sys_first
| stat_users
| id
| ref_mail_sys_first
| | stat_datas
|
|
| stat_datas
| id
|
| | stat_users
| M
| ref_rating_first
| stat_users
| id
| ref_rating_first
| | stat_datas
|
|
| stat_datas
| id
|
| | stat_ip2city
| M
| city
| stat_ip2city
| id
| city
| | stat_cities
|
|
| stat_cities
| id
|
| | stat_ip2country
| M
| country
| stat_ip2country
| id
| country
| | stat_countries
|
|
| stat_countries
| id
|
| | stat_sessions
|
| id_user
| stat_sessions
| id
| id_user
| | stat_users
|
|
| stat_users
| id
|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Поиск по сайту:
|