logo
Разработка автоматизированной информационной системы управления услугами оператора телефонной связи

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"

Имя столбца

Тип

Null/

not null

Primary key/unique

Check

Foreign key

Примечания

Nazvanie_tarifa

Varchar

(45)

not null

Primary key

Название тарифа

St_vh_vn_s

Float

not null

Стоимость входящих вызовов внутри сети

St_ish_vn_s

Float

not null

Стоимость исходящих вызовов внутри сети

St_vh_dr_op

Float

not null