Проектирование баз данных
Проектирование баз данных — это сложный процесс решения целого ряда задач, которые связаны с созданием баз данных.
Основные задачи проектирования СУБД:
- Обеспечение возможности для корректного получения данных по всем запросам;
- Обеспечение хранения в базе данных всей необходимой информации; Сократить избыточность и дублирование данных;
- Обеспечить целостность всех данных в БД и исключить их потери;
- Главные этапы в проектировании БД;
Основные этапы проектирования:
Инфологическое (Концептуальное) проектирование – это грамотное построение формализованной модели всей предметной области. Подобная модель создается с использованием стандартных языковых средств, чаще всего графических, например ER-диаграмм. Такая модель создается без какой-либо ориентации на конкретную СУБД.
Главные элементы данной модели:
1. Описание всех объектов предметной области и всех связей между ними;
2. Описание всех информационных потребностей пользователей, например, описание самых основных запросов к базе данных и т.д.;
3. Составление полного описания документооборота. Описание всех документов, которые используются в качестве исходных данных для базы данных;
4. Описание основных алгоритмических зависимостей, возникающих между данными;
5. Подробное описание ограничений целостности. Сюда входят требования ко всем допустимым значениям данных и к их связям;
На определенном этапе инфологического проектирования, собирая необходимую информацию о предметной области, необходимо выяснить:
- Все основные объекты предметной области и объекты для хранения информации в БД;
- Все основные атрибуты объектов;
- Все связи между этими объектами;
- Все основные запросы к базе данных;
Логическое (даталогическое) проектирование – заключается в отображении инфологической модели на какую-либо модель данных, которая используется в конкретной СУБД. Для реляционных СУБД характерна даталогическая модель, а именно: набор всех таблиц с указанием основных или ключевых полей и всех связей между этими таблицами. Даталогическое проектирование любой инфологической модели, которая построена в виде ER-диаграмм, представляет построение таблиц по каким-либо определённым формализованным правилам.
Физическое проектирование СУБД – это процесс реализации какой-либо даталогической модели, используя средства конкретной СУБД, а также выбор различных решений, которые связаны с физической средой хранения всех данных.
База данных
Создаем базу данных, с помощью программы Microsoft Office Access 2007. Называем «Школа». Заходим в нее, через конструктор таблиц.
Конструктор таблиц предназначен для задания и изменения структуры таблицы Access. С помощью конструктора можно формировать сколь угодно сложные таблицы с полями любого типа.
С помощью конструктора добавим в базу данных одну таблицу.
1. Щелчком на кнопке Окно базы данных переключитесь на список таблиц базы данных.
2. Дважды щелкните на значке Создание таблицы в режиме конструктора. Окно конструктора,состоит из двух частей. В верхней отображается список полей таблицы, а в нижней — свойства выделенного поля.
3. Назовем таблицу, как «Ученики».
4. Щелкните на ячейке Тип данных первой строки списка полей. Здесь необходимо выбрать тип поля, который определяет структуру и размер данных.
5. Щелкните на появившейся стрелке раскрывающегося списка ячейки Тип данных и выберите пункт Числовой.
6. Щелкните на второй ячейке столбца Имя поля и введите имя «№_Ученика», которое будет играть роль названия нового поля, так же ключевого, чтобы связать две таблицы.
7. Добавьте еще поле с именем «Класс».
8. Добавьте поле Ключ к полю «№_Ученика».
9. Сохраняя активной строку Ключ, щелкните на кнопке Ключевое поле. На кнопке этой строки появится значок ключа, показывающий особый статус поля.
10. Щелкните на кнопке закрытия окна конструктора.
11. Access спросит о необходимости сохранения структуры таблицы. В ответ щелкните на кнопке Да. Рисунок 1
Рис.1
Далее создаем таблицу с названием «ИНФО_учеников» с полями «№_Ученика», «Фамилия», «Имя», «Отчество», «Адрес», «Домашний_телефон» с типами данных как указаны на Рисунке 2.
Рис.2
Создадим еще одну таблицу «Оценки» с полями и типами данных, как указано на Рисунке 3.
Рис.3
Теперь свяжем две таблицы. Связь между двумя таблицами Access позволяет установить правила взаимодействия между таблицами. Список подстановок можно было организовать и без связи.
Выберите команду Сервис Схема данных. Откроется окно, схематически изображающее связи базы данных. Линия связи соединяет поля «№_Ученика» таблицы «Ученики» и №_Ученика таблицы «ИНФО_Ученика». А так же связи соединяет поля «Фамилия» таблицы «ИНФО_Ученика» и «Фамилия» таблицы «Оценки»
Связь будет один ко многому. Так же ставим обеспечение целостности данных, каскадное удаление связанных записей и каскадное обновление связанных полей как на Рисунке 5
Рис.5
Далее создаем запрос для вывода на экран учеников определенного класса. На вкладке «Создание» выбираем пункт меню «Конструктор запросов». Рисунок 6
Рис.6
Выбираем таблицы «Ученики», «ИНФО_Учеников». Рисунок 7
Рис.7
Выделяем поля «Фамилия», «Имя», «Отчество», «Класс» и прописываем в колонке «Класс» [Введите класс]. Рисунок 8.
Рис.8
Закрываем и на запрос сохранить жмите ДА.
Программирование на Visual Basic for application
Visual Basic for Applications (VBA, Visual Basic для приложений) — немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office (включая версии для Mac OS), а также во многие другие программные пакеты, такие как AutoCAD, SolidWorks, CorelDRAW, WordPerfect и ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как WordBasic.
VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic. VBA, будучи языком, построенным на COM, позволяет использовать все доступные в операционной системе COM объекты и компоненты ActiveX. По сути, возможно создание приложения на основе Microsoft Word VBA, использующего только средства Corel Draw.
В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft .NET.
VBA — транслируемый язык. Это означает, что его команды сначала преобразуются к исполняемой форме. Контейнеры VBA (Access, Excel, Word) могут сохранять странслированную программу в скрытой форме в исходном документе (чтобы избежать перекомпиляции при каждом выполнении программы). Исполнение кода происходит в виртуальной машине (как в Java), что зачастую ошибочно называют интерпретацией. Несмотря на его схожесть со многими старыми диалектами BASIC (особенно Microsoft BASIC), VBA не совместим с ними, кроме Microsoft Visual Basic до версии 6, и не совместим с VB.NET. Использование VBA с приложениями (Access, Excel, Word) предполагает соответствующую терминологию и языковые конструкции — так называемую «объектную модель приложения».
Широкое распространение Visual Basic for Applications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов. Как и программы на любом языке программирования, макросы VBA могут быть созданы с злым умыслом. Для защиты были введены опции приложения — пользователь по своему усмотрению может исполнять макросы VBA или отказаться от их использования.
Примеры:
Цикл For Each..Next всегда выполняется столько раз, сколько имеется элементов в определенной группе.
В нижеприведенном листинге показана функция SheetExists, использующая цикл For Each..Next для определения того, существует ли определенный лист в рабочей книге Excel:
При выполнении цикла Do Loop While сначала выполняются операторы тела цикла, затем по достижении ключевого слова Loop тестируется логическое выражение (Condition); если оно равно True — управление передается в начало тела цикла и цикл повторяется снова. Так происходит до тех пор, пока логическое выражение не станет False. Когда логическое выражение становится False — управление передается оператору, следующему за строкой Loop While…
Листинг, использующий цикл Do Loop While для подсчета цифр от 1 до 10, будет выглядеть так:
Циклы можно помещать внутрь друг друга. Помещение одной структуры цикла в другую называется вложением циклов. Можно делать вложение структур циклов разного типа.
При вложении циклов надо соблюдать определенные правила:
- При вложении циклов For..Next каждый цикл должен иметь свою уникальную переменную счетчика;
- При вложении циклов For Each..Next каждый цикл должен иметь свою уникальную element-переменную;
- Если используется оператор Exit For или Exit Do во вложенном цикле, этим оператором заканчивается только выполняемый в данный момент цикл. VBA продолжает выполнение следующего цикла более высокого уровня.
В нижеприведенном листинге показан простейший пример использования вложенных циклов For..Next:
Программирование на С++
Язык программирования С++ задумывался как язык, который будет:
- лучше языка С;
- поддерживать абстракцию данных;
- поддерживать объектно-ориентированное программирование.
С++ — язык общего назначения и задуман для того, чтобы настоящие программисты получили удовольствие от самого процесса программирования. За исключением второстепенных деталей он содержит язык С как подмножество. Язык С расширяется введением гибких и эффективных средств, предназначенных для построения новых типов. Программист структурирует свою задачу, определив новые типы, которые точно соответствуют понятиям предметной области задачи. Такой метод построения программы обычно называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. С такими объектами можно работать надежно и просто даже в тех случаях, когда их тип нельзя установить на стадии трансляции. Программирование с использованием таких объектов обычно называют объектно-ориентированным. Если этот метод применяется правильно, то программы становятся короче и понятнее, а сопровождение их упрощается.
Ключевым понятием С++ является класс. Класс — это определяемый пользователем тип. Классы обеспечивают упрятывание данных, их инициализацию, неявное преобразование пользовательских типов, динамическое задание типов, контролируемое пользователем управление памятью и средства для перегрузки операций. В языке С++ концепции контроля типов и модульного построения программ реализованы более полно, чем в С. Кроме того, С++ содержит усовершенствования, прямо с классами не связанные: символические константы, функции-подстановки, стандартные значения параметров функций, перегрузка имен функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены все возможности С эффективной работы с основными объектами, отражающими аппаратную реальность (разряды, байты, слова, адреса и т.д.). Это позволяет достаточно эффективно реализовывать пользовательские типы.
Объектно-ориентированное программирование — это метод программирования, способ написания хороших программ для множества задач. Если этот термин имеет какой-то смысл, то он должен подразумевать: такой язык программирования, который предоставляет хорошие возможности для объектно-ориентированного стиля программирования.
Нельзя сказать, что один язык лучше другого только потому, что в нем есть возможности, которые в другом отсутствуют. Часто бывает как раз наоборот. Здесь более важно не то, какими возможностями обладает язык, а то, насколько имеющиеся в нем возможности поддерживают избранный стиль программирования для определенного круга задач.
Язык С++ проектировался для поддержки абстракции данных и объектно-ориентированного программирования в добавление к традиционному стилю С. Впрочем, это не значит, что язык требует какого-то одного стиля программирования от всех пользователей.
Задача
Описать структуру TRAIN с полями:
- название пункта направления;
- номер поезда;
- время отправления.
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из элементов типа TRAIN;
- затем разместить их в алфавитном порядке по названиям пунктов назначения;
- вывод информации о поездах, отходящих после введенного времени;
- если таких поездов нет, выдать на дисплей соответствующее сообщение.
Решение
Компьютерные сети
Физический уровень определяет способ физического соединения ПК в сети. Основными функциями средств, относящихся к данному уровню является побитовое преобразование цифровых данных в сигналы среды передачи, а так же передачи сигналов по физической среде.
Среда передачи- это физическая среда по которой возможно распространение информационных сигналов в виде электрических и световых импульсов. Выделяют 2 вида физических соединений:
- Соединение с помощью кабеля
- Беспроводное соединение.
В современных сетях используется следующие кабели:
- Коаксиальный кабель.
- Витая пара.
- Оптоволоконный кабель.
Коаксиальный кабель.
Коаксиальный кабель был первым типом кабеля использованный для соединения ПК в сеть. Кабель данного типа состоит из центрального медного проводника покрытого пластиковым изолирующим материалом, который в свою очередь окружен изолирующей медной сеткой иди алюминиевой фольгой.
Сети на основе этого кабеля, обеспечивают передачу данных со скоростью до 10 мбит/сек. Максимальная длинна сегмента 150-180 метров.
Витая пара.
Кабель данного типа является одним из наиболее распространенных типов кабеля. Он состоит из пар медных проводков покрытых пластиковой оболочкой. Провода составляют пару закрученных во круг друг друга. Кабель данного типа делится на 2 категории:
- Экранированная витая пара.
- Неэкранированная витая пара.
Обеспечивает передачу данных со скоростью 10мбит/сек-1Гбит/сек. Длинна сегмента 100 метров.
Оптоволоконный кабель.
Он представляет собой наиболее современную технологию. Обеспечивает высокую скорость передачи данных до 2-х Гбит/сек, длинна сегмента да 2-х км.
Оптоволоконный кабель состоит из стеклянного центрального или пластикого проводника окруженного слоем стеклянного или пластикого покрытия и внешней защитной оболочки.
Передача данных осуществляется с помощью лазерного или светодиодного передатчика, посылающего однонаправленные световые импульсы через центральный проводник.
Сигнал на другом конце принимается фотодиодным приемником, осуществляющий преобразование световых импульсов в электрические сигналы.
Топология сетей.
Если сеть состоит из 2-х ПК то они соединяются на прямую. Такой способ соединения называется топология точка тире точка(.-.)
Топология шина.
Это топология использует 1 передающий канал на базе коаксиального кабеля — шиной. Все сетевые ПК присоединяются на прямую к шине, на концах шины устанавливают специальные заглушки – терминаторыони необходимы чтобы погасить сигнал после прохождения по шине.
Недостатки:
- Данные передаваемые по кабелю доступны всем подключенным ПК.
- В случае повреждения шины вся сеть перестает функционировать.
Топология кольцо.
Для данной топологии характерно отсутствие конечных соединений, сеть замкнута, образуется непрерывное кольцо по которой передаются данные. Данные передаются последовательно от первого ПК к другому, пока не достигнут ПК получателя.
Недостатки:
- Данные передаваемые по кабелю доступны всем подключенным ПК.
- В случае повреждения шины вся сеть перестает функционировать.
Топология звезда.
В этой топологии все ПК соединены со специальным устройством называемым сетевым концентратором или хабом который выполняет функция распределения данных. Прямые соединения 2-х ПК отсутствуют.