1.4.3 АИС "ЕТК: Личный кабинет 1.3"
Описание: Программа представляет удобный инструмент управления лицевым счетом абонента сотового оператора ЗАО "ЕТК" (Енисейтелеком). Программа состоит из трех модулей: личный кабинет, SMS-сервис, справка.
- Личный кабинет позволяет управлять как своим лицевым счетом, так и другими (собственные счета, корпоративные и т.д.). Работает только при подключенном соединении интернета (Wi-Fi, GPRS, 3G). Доступны такие операции как:
- изменение списка услуг;
- пополнение баланса;
- блокировка/разблокировка номера и др.
SMS-сервис позволяет управлять лицевым счетом только активной SIM-карты. Подключения к интернету не требуется. Доступны такие операции как управление списком услуг и пополнение баланса.
Справка представляет собой краткий справочник абонента, встроенный в программу. Подключения к интернету не требуется.
Главное окно программы представлено на рисунке 3.
Рис.3. "Главное окно АИС ЕТК: Личный кабинет 1.3"
1.5 Обоснование разработки автоматизированной информационной системы "Оператор"
У существующих аналогов были выявлены следующие недостатки:
- нет гибких механизмов разграничения доступа к данным
- недостаточная функциональность
- нет многопользовательского доступа
- высокая цена
Подходящие новые технологии
Современным решением выше указанных проблем является разработка АИС "Оператор", так как:
- гибкий интерфейс
- возможность создания распределённой информационной базы
- низкая цена за конечный продукт
Ожидаемый эффект от внедрения:
- Актуальность - возможность оперативно отражать изменения.
- Полнота информации, то есть предоставление максимально полной информации о заказах, об оплате, об автомобилях.
- Удобство - понятный интерфейс.
- Непротиворечивость и достоверность данных.
Заключение по главе
Создание данной автоматизированной информационной системы позволит учесть все особенности для реализации услуг оператора сотовой связи.
Ожидаемый эффект от внедрения:
Ш Актуальность - возможность оперативно отражать изменения.
Ш Полнота информации, то есть предоставление максимально полной информации о составленной смете.
Ш Удобство - понятный интерфейс.
Ш Непротиворечивость и достоверность данных.
Ш Консолидация сведений на предприятии.
2. Обзор средств разработки
2.1 Выбор СУБД
Система управления базой данных (СУБД) ? комплекс программных средств, предназначенный для создания, ведения и использования БД.
По возможностям выделяют две группы СУБД:
1. Полнофункциональные СУБД ? наиболее мощные, многопользовательские, с системами защиты, копирования и восстановления данных (Oracle, Microsoft SQL Server, Informix, DB/2), но более сложные СУБД.
2. Персональные СУБД ? с ограниченными возможностями, но более простые в использовании (Access, Visual FoxPro, Paradox, Clipper, dBase, Clarion, DataEase, DataFlex, R: BASE).
2.1.1 СУБД Oracle Database
Oracle - одна из наиболее мощных современных СУБД, предназначенных для реализации баз данных уровня корпорации, что предъявляет серьезные требования к серверу.может работать в большинстве операционных систем: Windоws-NТ, -2000, Linux, UNIХ, AIX, Nowell Nеtwаrе. А это в свою очередь позволяет выбирать наиболее удобную для корпоративных задач платформу сервера. Например, если организация предпочитает использовать операционные системы не от Windows, то она легко может себе это позволить. Некоторые организации могут ориентироваться на решения на базе UNIХ-систем, славящихся надежностью и устойчивостью в качестве серверной платформы, при этом продолжая использовать привычный пользователям Windows на клиентских компьютерах.
Основными преимуществами Oracle можно считать поддержку баз данных очень большого объема (до 64 Гбайт), мощные средства разработки и администрирования, поддержку многопроцессорности и двух языковых сред, а также интеграцию с Web. Вместе с этим программа предъявляет серьезные аппаратные требования и высокую цену
2.1.2 СУБД MS SQL Server-2008
MS SQL Sеrvеr-2008 получила широкое распространение как у нас в стране, так и за рубежом, поскольку она предлагает широкий спектр услуг администрирования и легко масштабируется. Это позволяет использовать ее в информационных системах для среднего бизнеса и больших компьютерных информационных системах (КИС).
В основе платформы MS SQL Server используется среда Windows.
Главное преимущество программы - тесная интеграция с программными продуктами от Мiсrosоft и возможность экспорта/импорта данных в большинство распространенных форматов данных, что позволяет использовать MS SQL Server как центральное хранилище данных.
Server 2008 Express -- это бесплатная редакция системы SQL Server. Она идеально подходит для обучения работе с базами данных, для создания небольших серверных приложений и для распространения независимыми поставщиками ПО. В этот выпуск включен ряд мощных функциональных возможностей, в частности службы отчетов SQL Server 2008 -- серверная платформа для создания и отправки классических и интерактивных отчетов -- и графическая среда SQL Server 2008 Management Studio Express, упрощающая управление базами данных.
- Мощность
- Возможность разрабатывать высокопроизводительные приложения, опирающиеся на безопасность, надежность и масштабируемость ядра SQL Server.
- Производительность
- Тесная интеграция SQL Server Express с конструкторами Visual Studio и средой SQL Server Management Studio позволяет разрабатывать приложения быстрее.
- Гибкость
- Создание мало связанных приложений, способных работать без подключения к сети и автоматически синхронизироваться с центральной базой данных.
Ключевые области использования:
- Базы данных начального уровня, учебные БД
- Создание мощных настольных приложений
- Права на свободное распространение для независимых разработчиков ПО.
2.1.3 СУБД Firebird 2.1
Firebird (FirebirdSQL) -- компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на Linux, Microsoft Windows и разнообразных Unix платформах.
В качестве преимуществ Firebird можно отметить многоверсионную архитектуру (параллельная обработка оперативных и аналитических запросов: читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров.
Firebird используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора) с 2001 г. Это коммерчески независимый проект C и C++ программистов, технических советников и разработчиков мульти платформенных систем управления базами данных, основанный на исходном коде, выпущенном корпорацией Borland 25 июля 2000 года в виде свободной версии Interbase 6.0.
Firebird полностью поддерживает SQL-92 Entry Level 1 и реализует большую часть стандарта SQL-99 c некоторыми очень полезными дополнениями. Это включает выражения DML/DDL, синтаксис объединений FULL/LEFT/RIGHT [OUTER] JOIN, выражения UNION, DISTINCT, подзапросы (IN, EXISTS), встроенные функции (AVG, SUM, MIN, MAX, COALESCE, CASE, ..), ограничения целостности (PRIMARY KEY, UNIQUE, FOREIGN KEY), и все общие типы данных SQL.
Firebird поддерживает множество способов доступа, включая: собственные наборы компонент для C/C++, Delphi, классы для ADO, ODBC, JDBC (Jaybird), драйверы для Python, PHP, драйвер OLE DB, dbExpress, провайдер данных .NET и прямой доступ с использованием клиентской библиотеки сервера (fbclient.dll или GDS32.dll)
Firebird поддерживает большие базы данных. Базы данных могут быть расположены в нескольких файлах, предельный размер которых зависит от операционной системы. Теоретический предел в настоящее время составляет 64TБ для одного файла базы данных, таким образом, главные ограничения накладываются файловой системой и местом на жёстком диске.
Firebird является сервером баз данных. Один сервер Firebird может обрабатывать несколько сотен независимых баз данных, каждую с множеством пользовательских соединений. Он является полностью свободным от лицензионных отчислений даже для коммерческого использования.
2.2 Выбор среды разработки базы данных
2.2.1 IBExpert 2009
IBExpert -- GUI-оболочка, предназначенная для разработки и администрирования баз данных InterBase и Firebird, а также для выбора и изменения данных, хранящихся в базах.
Как основные достоинства IBExpert разработчики указывают:
Ш поддержка InterBase версий 4.х, 5.х, 6.х, 7.х; Firebird 1.х, 2.x, 3.x; Yaffil 1.х;
Ш работа одновременно с несколькими базами данных;
Ш отдельные редакторы для всех объектов БД с синтаксической подсветкой;
Ш мощный SQL редактор с историей запросов и возможностью фонового выполнения запросов;
Ш автозавершение кода SQL (название таблиц, полей, и т.п.)
Ш отладчик хранимых процедур и триггеров;
Ш поиск в метаданных;
Ш полное и частичное извлечение данных и метаданных;
Ш анализатор зависимостей объектов баз данных;
Ш отчеты по метаданным;
Ш менеджеры пользователей и пользовательских привилегий;
Ш экспорт данных в различные форматы.
IBExpert обладает множеством облегчающих работу компонентов: визуальный редактор для всех объектов базы данных, редактор SQL и исполнитель скриптов, отладчик для хранимых процедур и триггеров, построитель области, инструмент для импорта данных из различных источников, собственный скриптовый язык, а также дизайнер баз данных.
2.2.2 Microsoft Access
Microsoft Access -- реляционная СУБД[1] корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA, в самом Access можно писать приложения, работающие с базами данных.
Ш Основные компоненты MS Access:
Ш построитель таблиц;
Ш построитель экранных форм;
Ш построитель SQL-запросов (язык SQL в MS Access не соответствует стандарту ANSI);
Ш построитель отчётов, выводимых на печать.
Они могут вызывать скрипты на языке VBA, поэтому MS Access позволяет разрабатывать приложения и БД практически "с нуля" или написать оболочку для внешней БД.
Microsoft Jet Database Engine (англ. Microsoft Jet Database Engine), которая используется в качестве движка базы данных MS Access является файл-серверной СУБД и потому применима лишь к приложениям, работающим с небольшими объёмами данных и при небольшом числе пользователей, одновременно работающих с этим данными. Непосредственно в Access отсутствует ряд механизмов, необходимых в многопользовательских базах данных, таких, например, как триггеры.
Встроенные средства взаимодействия MS Access со внешними СУБД с использованием интерфейса ODBC снимают ограничения, присущие Microsoft Jet Database Engine. Инструменты MS Access, которые позволяют реализовать такое взаимодействие, называются "связанные таблицы" (связь с таблицей СУБД) и "запросы к серверу" (запрос на диалекте SQL, который "понимает" СУБД).
Корпорация Microsoft для построения полноценных клиент-серверных приложений на базе MS Access рекомендует использовать в качестве движка базы данных СУБД MS SQL Server. При этом имеется возможность совместить с присущей MS Access простотой инструменты для управления БД и средства разработки.
Известны также реализации клиент-серверных приложений на базе связки Access 2003 c другими СУБД, в частности, MySQL
2.3 Выбор Среды разработки ПО
2.3.1 Delphi 2010
Delphi, -- интегрированная среда разработки ПО для Microsoft Windows, Mac OS, iOS и Android на языке Delphi (ранее носившем название Object Pascal), созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies. Embarcadero Delphi является частью пакета Embarcadero RAD Studio и поставляется в четырёх редакциях: Starter, Professional, Enterprise и Architect.
Среда предназначена для быстрой (RAD) разработки прикладного ПО для операционных систем Windows, Mac OS X, а также IOS и Android. Благодаря уникальной совокупности простоты языка и генерации машинного кода, позволяет непосредственно, и, при желании, достаточно низкоуровнево взаимодействовать с операционной системой, а также с библиотеками, написанными на C/C++. Созданные программы не зависимы от стороннего ПО, как-то Microsoft .NET Framework, или Java Virtual Machine. Выделение и освобождение памяти контролируется в основном пользовательским кодом, что, с одной стороны, ужесточает требования к качеству кода, а с другой -- делает возможным создание сложных приложений, с высокими требованиями к отзывчивости (работа в реальном времени). В кросс-компиляторах для мобильных платформ предусмотрен автоматический подсчет ссылок на объекты, облегчающий задачу управления их временем жизни.
2.3.2 Eclipse
Eclipse -- свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation.
Наиболее известные приложения на основе Eclipse Platform -- различные "Eclipse IDE" для разработки ПО на множестве языков (например, наиболее популярный "Java IDE", поддерживавшийся изначально, не полагается на какие-либо закрытые расширения, использует стандартный открытый API для доступа к Eclipse Platform)
Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge, в качестве корпоративного стандарта IDE для разработки на разных языках под платформы IBM. По сведениям IBM, проектирование и разработка стоили 40 миллионов долларов.[2] Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от IBM сообществу.
В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi, как архитектура времени выполнения. С версии 3.0 Eclipse перестал быть монолитной IDE, поддерживающей расширения, а сам стал набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой -- RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Eclipse, но и для других RCP-приложений, например Azureus и File Arranger. Следующий слой -- сам Eclipse, представляющий собой набор расширений RCP -- редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).
С 2006 года фонд Eclipse координирует ежегодный общий релиз (Simultaneous Release), который происходит в июне. Каждый выпуск включает в себя платформу Eclipse, а также ряд других проектов Eclipse.
Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и др.
Eclipse JDT (Java Development Tools) -- наиболее известный модуль, нацеленный на групповую разработку: среда интегрирована с системами управления версиями -- CVS, GIT в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. Также предлагает поддержку связи между IDE и системой управления задачами (ошибками). В основной поставке включена поддержка трекера ошибок Bugzilla, также имеется множество расширений для поддержки других трекеров (Trac, Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.
Eclipse написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ (см. ниже). Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на нижележащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.
Основой Eclipse является платформа расширенного клиента (RCP -- от англ. rich client platform). Её составляют следующие компоненты:
Ш Ядро платформы (загрузка Eclipse, запуск модулей);
Ш OSGi (стандартная среда поставки комплектов (англ. bundles));
Ш SWT (портируемый инструментарий виджетов);
Ш JFace (файловые буферы, работа с текстом, текстовые редакторы);
Ш Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).
GUI в Eclipse написан с использованием инструментария SWT. Последний, в отличие от Swing (который самостоятельно эмулирует графические элементы управления), использует графические компоненты данной операционной системы. Пользовательский интерфейс Eclipse также зависит от промежуточного слоя GUI, называемого JFace, который упрощает построение пользовательского интерфейса, базирующегося на SWT.
Гибкость Eclipse обеспечивается за счёт подключаемых модулей, благодаря чему возможна разработка не только на Java, но и на других языках, таких как C/C++, Perl, Groovy, Ruby, Python, PHP, Erlang, Компонентного Паскаля, Zonnon и прочих.
2.3.3 Microsoft Visual Studio
Microsoft Visual Studio -- линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Microsoft Silverlight.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).
Заключение по главе
Среди обширного количества существующих СУБД была выбрана Firebird 2.1. так как одним из ее преимуществом является поддержка множество способов доступа, включая: собственные наборы компонент для
C/C++ и Delphi. Так же Firebird поддерживает большие базы данных, которые могут быть расположены в нескольких файлах. В качестве еще одного преимущества Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров.
В качестве среды разработки базы данных была выбрана оболочка IBExpert 2009 так как она обладает рядом достоинств, таких как:
Ш поддержка InterBase версий 4.х, 5.х, 6.х, 7.х; Firebird 1.х, 2.x; Yaffil 1.х;
Ш работа одновременно с несколькими базами данных;
Ш отдельные редакторы для всех объектов БД с синтаксической подсветкой;
Ш мощный SQL редактор с историей запросов и возможностью фонового выполнения запросов;
Ш отладчик хранимых процедур и триггеров;
Ш поиск в метаданных;
Ш полное и частичное извлечение данных и метаданных;
Ш анализатор зависимостей объектов баз данных;
Ш отчеты по метаданным;
Ш менеджеры пользователей и пользовательских привилегий;
Ш экспорт данных в различные форматы.
IBExpert обладает множеством облегчающих работу компонентов: визуальный редактор для всех объектов базы данных, редактор SQL и исполнитель скриптов, отладчик для хранимых процедур и триггеров, построитель области, собственный скриптовый язык, а также дизайнер баз данных и т. д.
В качестве среды разработки ПО использовалась Delphi 2010 так как в она обладает следующими преимуществами:
Ш Быстрота разработки приложения.
Ш Высокая производительность разработанного приложения.
Ш Hизкие требования разработанного приложения к ресурсам компьютера.
Ш Hаращиваемость за счет встраивания новых компонент и инструментов в среду Delphi.
Ш Возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходниках)
Ш Удачная проработка иерархии объектов
Ш Де-факто уже доступно огромное количество визуальных компонентов третьих фирм, часть из которых freeware, часть shareware, часть - коммерческие.
3. Проектирование реляционной базы данных
Данная база данных проектируется на основе ролевой модели.
Управление доступом на основе ролей представляет собой развитие политики избирательного управления доступом, при этом права доступа субъектов системы на объекты группируются с учетом специфики их применения, образуя роли.
Ролевое разграничение доступа позволяет реализовать гибкие, изменяющиеся динамически в процессе функционирования компьютерной системы правила разграничения доступа.
Данный подход применяется в системах защиты СУБД, а отдельные элементы реализуются в сетевых операционных системах. Ролевой подход часто используется в системах, для пользователей которых четко определен круг их должностных полномочий и обязанностей как в данной базе данных.
Несмотря на то, что Роль является совокупностью прав доступа на объекты компьютерной системы, ролевое управление доступом отнюдь не является частным случаем избирательного управления доступом, так как его правила определяют порядок предоставления доступа субъектам компьютерной системы в зависимости от имеющихся (или отсутствующих) у него ролей в каждый момент времени, что является характерным для систем мандатного управления доступом. С другой стороны, правила ролевого разграничения доступа являются более гибкими, чем при мандатном подходе к разграничению.
Так как привилегии не назначаются пользователям непосредственно, и приобретаются ими только через свою роль (или роли), управление индивидуальными правами пользователя по сути сводится к назначению ему ролей. Это упрощает такие операции, как добавление пользователя или смена подразделения пользователем.
3.1 Разработка структуры таблиц
Структура базы данных для АИС "Оператор", представлена на рисунке 4.
База данных состоит из 6 сущностей, таких как:
Ш Abonenti - Данная сущность хранит в себе информацию об абонентах и включает в себя следующие атрибуты: код абонента, фамилия, имя, отчество, дата рождения, паспортные данные, адрес проживания.
Ш Uslugi - данная сущность включает в себя следующие атрибуты: код услуги, описание, примечание, стоимость.
Ш Tarifi - данная сущность включает в себя следующие атрибуты: название тарифа, стоимость входящих вызовов внутри сети, стоимость исходящих вызовов внутри сети, стоимость входящих вызовов с другого оператора, стоимость исходящих вызовов на другой оператор, стоимость входящих с городского телефона, стоимость исходящих на городской телефон стоимость смс и стоимость интернет трафика.
Ш Abonentskie_uslugi - данная сущность включает в себя следующие атрибуты: код услуги, номер договора, дата подключения, дата окончания действия данной услуги.
Ш Licevoi_schet - данная сущность включает в себя следующие атрибуты: id, номер лицевого счета, дата, время, сумма, номер договора
Ш Zakluchenie_dogovora - данная сущность включает в себя следующие атрибуты: код абонента, номер договора, дата заключения, абонентский номер, тариф, номер лицевого счета.
3.2 Нормализация таблиц
Нормализация - это процесс проверки структуры таблиц на наличие аномалии, если они имеются, то таблицы разбиваются на более мелкие таблицы. Структура нормализации представлена на рисунке 5.
Аномалии - это ситуации при работе с базой данных, которые могут привести к неоднозначной трактовке данных или противоречивым данным. Аномалии возникают в таблицах, содержащих избыточные данные
Рис. 5. "Структура нормализации таблиц"
На начальном этапе проектирования базы данных строится первая нормальная форма (1НФ): Таблица находится в 1 НФ, если на пересечении каждой строки и столбца стоит атомарное значение.
Отношение находится во 2НФ тогда и только тогда, когда отношение находится в 1НФ, и нет, не ключевых атрибутов, зависящих от части сложного ключа. Для того, чтобы устранить зависимость атрибутов от части сложного ключа, нужно произвести декомпозицию отношения на несколько отношений. При этом те атрибуты, которые зависят от части сложного ключа, выносятся в отдельное отношение.
Отношение находится в 3НФ тогда и только тогда, когда отношение находится во 2НФ и все не ключевые атрибуты взаимно независимы.
Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого.
Таблица находится в НФБК (Нормальная форма Байса-Кода), если детерминанты всех функциональных зависимостей являются потенциальными ключевыми таблицами
Отношение находится в 4НФ, если отношение содержит 2 многозначные зависимости.
Многозначная зависимость - это такая логическая связь между значениями столбцов А и В при которой для значения А мы можем определить множество значений столбца В.
5НФ применяется к таблицам, имеющим несколько многозначных зависимостей, причем атрибуты, входящие в эти зависимости связаны между собой по смыслу, то есть являются зависимыми друг от друга.
Отношения находятся в ДКНФ (Доменно-ключевая нормальная форма) если каждое ограничение целостности, накладываемое на это отношение является логическим следствием определения доменов и ключей.
Проведем нормализацию таблиц базы данных "Оператор".
Для этого выделим для каждой таблицы функциональные зависимости и проверим на нормальные формы как это показано на рисунке 1. Функциональная зависимость (ФЗ) между столбцами означает логическую связь "Многие к одному" между значениями этих столбцов.
Таблица Abonenti:
Функциональные зависимости :
1. Kod_abonenta > (Familiy, name, otchestvo, data_rogdeniy, seriy_pasporta, nomer_pasporta, kem_vidan, kogda_vidan, address)
2. (seriy_pasporta, nomer_pasporta) > (Kod_abonenta ,familiy, name, otchestvo, data_rogdeniy, kem_vidan, kogda_vidan, address)
3. (Familiy, name, otchestvo, data_rogdeniy, address) > (Kod_abonenta, seriy_pasporta, nomer_pasporta, kem_vidan, kogda_vidan)
Проверка на нормальные формы (НФ):
1НФ прошла, 2НФ прошла, НФБК прошла. Многозначных зависимостей нет. Таблица находится в ДКНФ.
Таблица Uslugi
Функциональные зависимости:
1. Kod_uslugi > (Opisanie, primechanie, stoimost)
1НФ прошла, 2НФ прошла, 3НФ прошла. Многозначных зависимостей нет. Таблица находится в ДКНФ.
Таблица Abonentskie_uslugi
Функциональные зависимости:
1. Kod_uslugi > (Nomer_dogovora, data_podklucheniy, data_okonchaniy)
2. Nomer_dogovora > (Data_podklucheniy, data_okonchaniy)
3. (Nomer_dogovora, data_podklucheniy > (Data_okonchaniy)
1НФ прошла, 2НФ прошла, 3НФ прошла. Многозначных зависимостей нет. Таблица находится в ДКНФ.
Таблица Tarifi
Функциональные зависимости:
1. Nazvanie_tarifa > (St_vh_vn_s, st_ish_vn_s, st_vh_dr_op, St_ish_na_dr_op, st_vh_s_gor_tel, st_ish_na_gor_tel,st_sms, internet_trafic)
1НФ прошла, 2НФ прошла, 3НФ прошла. Многозначных зависимостей нет. Таблица находится в ДКНФ.
Таблица Licevoi_schet
Функциональные зависимости:
1. Id > (Nom_licevogo_scheta, data, vremya, summa, nomer_dogovora)
2. Nom_licevogo_scheta > (Id, data, vremya, summa, nomer_dogovora)
3. (Nom_licevogo_scheta, data) > (vremya, summa)
4. Nomer_dogovora > Nom_licevogo_scheta
1НФ прошла, 2НФ прошла, 3НФ прошла. Многозначных зависимостей нет. Таблица находится в ДКНФ.
Таблица Zakluchenie_dogovora
Функциональные зависимости:
1. Kod_abonenta > (Nom_dogovora, data_zaklucheniy, abonents_nom,tariff, nom_licevogo_sheta)
2. Nom_dogovora > (Kod_abonenta, data_zaklucheniy, abonents_nom,tariff, nom_licevogo_sheta)
3. Abonents_nom > Nom_licevogo_sheta
1НФ прошла, 2НФ прошла, 3НФ прошла. Многозначных зависимостей нет. Таблица находится в ДКНФ.
Таким образом, все обнаруженные аномалии обновления устранены. Реляционная модель, состоящая из отношений, находящихся в третьей нормальной форме, является адекватной описанной модели предметной области.
3.3 Проектирование ограничений целостности
Таблица 1. "Abonenti"
Имя столбца |
Тип |
Null/not null |
Primary key/unique |
Check |
Foreign key |
Примечания |
|
Kod_abonenta |
Integer |
not null |
Primary key |
Код абонента |
|||
Familiy |
Varchar (25) |
not null |
Фамилия абонента |
||||
Name |
Varchar (15) |
not null |
Имя абонента |
||||
Otchestvo |
Varchar (25) |
not null |
Отчество абонента |
||||
Data_rogdeniya |
Date |
null |
Дата рождения абонента |
||||
Seriya_pasporta |
Integer |
not null |
Серия паспорта |
||||
Nomer_pasporta |
Integer |
not null |
Номер паспорта |
||||
Kem_vidan |
Varchar (35) |
not null |
Кем выдан |
||||
Kogda_vidan |
Date |
not null |
Когда выдан |
||||
Adress |
Varchar (85) |
null |
Адрес абонента |
Таблица 2. "Uslugi"
Имя столбца |
Тип |
Null/ not null |
Primary key/unique |
Check |
Foreign key |
Примечания |
|
Kod_uslugi |
Integer |
not null |
Primary key |
Код услуги |
|||
Opisanie |
Varchar(150) |
not null |
Описание услуги, ее название |
||||
Primechanie |
Varchar(150) |
null |
Примечания, |
||||
Stoimost |
Float |
not null |
Стоимость услуги |
Таблица 3. "Abonentskie_uslugi"
Имя столбца |
Тип |
Null/ not null |
Primary key/unique |
Check |
Foreign key |
Примечания |
|
Kod_uslugi |
Integer |
not null |
Foreign key |
Код услуги |
|||
Nomer_dogovora |
Integer |
not null |
Foreign key |
Номер договора |
|||
Data_Podklucheniy |
Date |
not null |
Дата подключения услуги |
||||
Data_okonchaniy |
Date |
null |
Дата окончания услуги |
Таблица 4. "Zakluchenie_dogovora"
Имя столбца |
Тип |
Null/ not null |
Primary key/unique |
Check |
Foreign key |
Примечания |
|
Kod_abonenta |
Integer |
not null |
Foreign key |
Код абонента |
|||
Nom_dogovora |
Integer |
not null |
Primary key |
Номер договора |
|||
Data_zaklucheniy |
Date |
not null |
Дата заключения договора |
||||
Abonents_nom |
Integer |
not null |
Абонентский номер |
||||
Tarif |
Varchar (45) |
not null |
Foreign key |
Тарифный план |
|||
Nomer_Licevogo scheta |
Integer |
not null |
Foreign key |
Номер лицевого счета абонента |
Таблица 5. "Licevoi_schet"
Имя столбца |
Тип |
Null/not null |
Primary key/unique |
Check |
Foreign key |
Примечания |
|
Id |
Integer |
not null |
Primary key |
Порядковый номер |
|||
Nomer_licevogo_scheta |
Integer |
not null |
Номер лицевого счета |
||||
Data |
Date |
not null |
Дата |
||||
Vremya |
Time |
not null |
Время |
||||
Summa |
Float |
not null |
Сумма |
||||
Nomer_dogovora |
Integer |
not null |
Номер договора |
Таблица 6. "Tarifi"