
1. Ба́за да́нных — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены иобработаны с помощью электронной вычислительной машины (ЭВМ).[1]Многие специалисты указывают на распространённую ошибку, состоящую в некорректном использовании термина «база данных» вместо термина «система управления базами данных», и указывают на необходимость различения этих понятий.[2]
2. Физические объекты относятся к организации данных на физических носителях (дисках). Физические объекты Database Engine являются файлами и группами файлов. Логические объекты являются
. Информационный объект — это описание некоторой сущности (реального объекта, явления, процесса, события) в виде совокупности логически связанных реквизитов (информационных элементов). Такими сущностями для информационных объектов могут служить: цех, склад, материал, вуз, студент, сдача экзаменов и т.д.
Информационный объект определенного реквизитного состава и структуры образует класс (тип), которому присваивается уникальное имя (символьное обозначение), например Студент, Сессия, Стипендия.
Информационный объект имеет множество реализации — экземпляров, каждый из которых представлен совокупностью конкретных значений реквизитов и идентифицируется значением ключа (простого — один реквизит или составного — несколько реквизитов). Остальные реквизиты информационного объекта являются описательными. При этом одни и те же реквизиты в одних информационных объектах могут быть ключевыми, а в других - описательными. Информационный объект может иметь несколько ключей.
3. структурирование данных сокращает их дублирование, а следовательно, приводит к экономии памяти на внешних носителях (это особенно важно для ПЭВТ), повышает надежность и достоверность информации (что имеет большое значение для АРТ); базы данных создаются, описываются, существуют и актуализируются независимо от прикладных программ; обеспечивается интеграция информации, в связи с чем эта информация становится объектом обработки многих пользователей АРТ; система обработки является более стройной и надежной, а затраты на ее ведение и обслуживание уменьшаются
4. Определение модели данных предусматривает указание множества допустимых информационных конструкций, операций над данными и множества ограничений для хранимых значений данных.
Принципиальными различиями обладают три модели данных:
- реляционная,
- иерархическая,
- сетевая.
5. Реляционная модель
В реляционных моделях данных объекты и взаимосвязи между ними представляются с помощью таблиц. Каждая таблица представляет один объект и состоит из строк и столбцов.
Таблица в терминологии реляционной модели называется отношением.
Атрибут (поле) - каждый (любой) столбец в таблице.
Домен - множество значений, которые может принимать атрибут.
Кортежи (записи) - строки таблицы.
В соответствии с традиционной терминологией можно сказать, что столбцы таблицы представляют элементы данных, а строки - записи.
Ключ - это столбец или ряд столбцов, значение которых однозначно идентифицируют строки таблицы.
Реляционная модель основана на хорошо проработанной теории отношений (нормализации отношений). Свойства отношений в реляционной модели:
- Отсутствуют одинаковые строки,
- Порядок строк не существенен,
- Порядок столбцов не существенен,
- Все значения имеют атомарный характер, то есть их нельзя разбить на компоненты без потери информации.
Достоинства реляционной модели данных:
- простота - пользователь работает с простой моделью данных;
- независимость данных - интерфейс пользователя не связан с деталями физической структуры памяти и стратегией доступа;
- реляционная модель основана на хорошо проработанной теории отношений.
Недостатки модели:
- достаточно низкая производительность СУБД, основанных на использовании реляционной модели.
Одним из основных преимуществ реляционной модели является ее однородность.
6-10. 1. «Один-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, и наоборот.
У любого конкретного ученика может быть только одна характеристика, и эта характеристика относится к единственному ученику.
2. «Один-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, но любому экземпляру сущности В соответствует только один экземпляр сущности А.
Ученику ставят много оценок; поставленная оценка принадлежит только одному ученику.
3. «Многие-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, но любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А.
Преподаватель работает только в одном кабинете, однако рабочий кабинет может быть закреплен за несколькими преподавателями.
Какая же разница между связями «один-ко-многим» и «многие-к-одному»? Такая же, как между фразами «портфель ученика» и «ученик портфеля». То есть важно, кто во взаимоотношении двух объектов главный - ученик или портфель. Суть отношений двух объектов отражается в имени связи.
Если при определении связи вам сложно выделить подчиненность, то вывод только один: вы плохо разобрались в предметной области.
4. «Многие-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, и любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А.
12. Система управления базами данных. Этот класс программ предназначен для разработки и управления баз данных. Компьютерная база данных (БД) – это совокупность структурированных данных об объектах какой-либо предметной области. Примеры: Lotus Approach, DataBase, Paradox, Microsoft Access, FoxPro, Clarion, Oracle, Microsoft SQL Server, Sybase SQL Server, Informix.
Правовые БД содержат тексты нормативных документов и предоставляют возможности поиска, распечатки и т. д. Примеры: Гарант, Кодекс, Консультант-Плюс, Юрисконсульт и т. Д
13. Данные локальной базы данных (файлы данных) находятся на одном (локальном) устройстве, в качестве которого может выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети).
Для обеспечения разделения данных (доступа к данным) между несколькими пользователями, в качестве которых выступают программы, работающие на одном или нескольких компьютерах, в локальных базах данных применяется метод, получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может работать с этими данными, т. е. данные для него закрыты, заблокированы.
Paradox, dBase, FoxPro и Access — это локальные базы данных.
Другой способ организации базы данных — использование архитектуры клиент/сервер. В этом случае система управления базой данных и сами данные размещаются на файловом сервере. К базе данных могут обращаться как один, так и несколько пользователей (клиентов). Пользователи такой базы данных, как правило, распределены по сети. Поскольку они независимы друг от друга, не исключено их одновременное обращение к базе данных. Для базы данных клиент/сервер это не является проблемой. Сервер "знает", как обрабатывать одновременные запросы.
Пользователи базы данных клиент/сервер почти никогда не работают с ней напрямую. Вместо этого они взаимодействуют с приложениями на своем локальном компьютере. Эти приложения, называемые приложениями-клиентами, гарантируют соблюдение определенных правил при работе с базой данных. Они должны предотвращать действия пользователя, которые могли бы ее повредить.
Рассредоточенная или, если правильно называть, распределенная база данных – это такая БД, в состав которой входит несколько компьютеров, связанных сетью, на каждом из которых работает локальная база данных. Совокупность всех этих программно-аппаратных средств создает общую БД. Распределенные базы данных извне выглядят как обычные локальные базы, их аппаратная разнесенность не заметна пользователям. Распределенная система управления контролирует все узлы БД и обеспечивает связность данных.
14. Целью данного этапа является последовательная разработка концептуальной информационно—логической модели предметной области, отражающей логику информации предприятия и даталогической модели базы данных.
Инфологическая модель предметной области
Исходными данными для построения ИЛМ предметной области являются результаты анализа предметной области, представленные в виде описания классов объектов и связей между ними. Чаще всего ИЛМ предметной области представляют в терминах семантической модели данных, в виде ER — диаграммы предметной области. Необходимо отметить, что выявление в предметной области классов объектов, связей, описание и отображение их в диаграмме происходит параллельно
15. Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс. При разработке программного обеспечения сложность реализации и качество работы программ существенно зависит от правильного выбора структур данных. Это понимание дало начало формальным методам разработки и языкам программирования, в которых именно структуры данных, а не алгоритмы, ставятся во главу архитектуры программного средства. Большая часть таких языков обладает определённым типом модульности, позволяющим структурам данных безопасно переиспользоваться в различных приложениях. Объектно-ориентированные языки, такие как Java, C# и C++, являются примерами такого подхода.
19.Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
Свойства алгоритмов: 1. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке); 2. Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае); 3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения); 4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными); 5. Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).
20. Линейный алгоритм.
В алгоритмическом языке линейным является алгоритм, состоящий из команд,
выполняющихся одна за другой. Они в записи алгоритма располагаются в том
порядке, в каком должны быть выполнены предписываемые ими действия. Такой
порядок выполнения называется естественным.
Ветвящийся алгоритм.
При исполнении алгоритмов приходится не только находить значения величин, но
и анализировать их свойства, сравнивать их друг с другом и в зависимости от
результата сравнения выбирать ту или иную ветвь алгоритма. Алгоритмы, имеющие
несколько ветвей, называются нелинейными. К таким относятся разветвляющиеся и
циклические алгоритмы. Для их записи применяются составные команды.
Базовая структура "ветвление". Определяет выполнение действий в зависимости
от выполнения условия.
Циклический алгоритм.
Повторяющееся выполнение действий (групп действий),зависящее от выполнения
условия, называется циклом.
Любой цикл состоит из трех частей: начала, проверки и тела цикла. Начало –
всегда первая часть цикла. Главная его функция – подготовить цикл. Проверка
определяет момент выхода из цикла.
Базовая структура "цикл". Обеспечивает многократное выполнение некоторой
совокупности действий, которая называется телом цикла.
21. 1. Постановка задачи
Наличие точной формулировки задачи является одной из необходимых составляющих ее правильного понимания и решения.
Можно предложить определенный круг вопросов, помогающих более точно понять смысл задачи, уточнить ее формулировку:
- Является ли система входных данных полной?
- Что требуется найти?
- Какие существуют подходы к определению решения данной задачи?
2. Разработка модели
{loadposition adsense1}
3. Построение алгоритма
После постановки задачи и построения для нее модели необходимо приступить к разработке алгоритма ее решения. Выбор метода разработки, в большинстве случаев, определяется построенной моделью и может существенно повлиять на эффективность алгоритма решения. Для построения хорошего алгоритма необходим тщательный анализ построенной модели и ее ограничений.
4. Проверка правильности алгоритма
Проверка правильности алгоритма, является одним из наиболее трудных этапов построения алгоритма. По степени творческих затрат его можно сравнить с процедурой разработки алгоритма. В большинстве случаев правильность алгоритма не следует тривиальным образом из его разработки и требует проведения доказательства.
5. Анализ алгоритма
Прежде чем приступить к реализации алгоритма для конкретной аппаратной платформы, следует провести оценку времени работы и объема требуемой памяти. Вполне вероятна ситуация, что для решения относительно простой задачи потребуются часы, дни и даже годы машинного времени. Анализ алгоритмов представляет собой раздел информатики, занимающийся выводом количественной информации об эффективности компьютерных методов.
Каждое реальное вычисление характеризуется:
1. Определенной длительностью, физическим временем выполнения (время);
2. Объемом требуемой памяти, физическим пространством (емкость).
6. Программная реализация алгоритма.
После того, как алгоритм разработан, доказана его правильность и проведен анализ, можно приступить к реализации алгоритма, т.е. созданию программы для ПК.
Из правильности алгоритма вовсе не следует правильность программы, созданной на основе этого алгоритма.
22.
- вербальный, когда алгоритм описывается на человеческом языке;
- символьный, когда алгоритм описывается с помощью набора символов;
- графический, когда алгоритм описывается с помощью набора графических изображений.
23. Однако все-таки сам по себе он не молчет гарантировать правильности алгоритма. Ошибки, особенно при разработке нетривиальных алгоритмов, неизбежно возникают, например, при перфорации. Поэтому с самого начала необходимо применять дополнительные средства ( так называемые стопоры ошибок), повышающие надежность алгоритма и позволяющие эффективнее вести поиск ошибок при последующей отладке. Одно из таких средств было упомянуто в конце предыдущего параграфа - это вставка утверждений в различные точки паскаль-программ, прежде всего в операторы цикла
24. Процесс решения задачи на компьютере - это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью - постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера - этапы обработки информации в соответствии с разработанным алгоритмом.
Первый этап - Постановка задачи. На этом этапе учавствует человек, хорошо представляющий предметную область задачи. Он должен четко определить цель задачи, дать словесное описание содержания задачи и предложить общий подход к ее решению.
Второй этап - Математическое или информационное моделирование. Цель этого этапа - создать такую математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач,где математическая постановка сводиться к простому перечислению формул и логических условий. Этот этап тесно связан с первым этапом, и его можно отдельно не рассматривать, однако возможно, что для полученной модели известны несколько методов решения, и тогда предстоит выбрать наиболее эффективный.
Третий этап - Алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения. Более подробно этот этап будет рассмотрен в пункте "1.1.2 Основы алгоритмизации" данной главы.
Четвертый этап - Программирование. Программой называется план действий, подлежащих выполнению некоторым сполнителем,в качестве которого выступает компьютер. Составление программы обеспечивает возможность выполнения алгоритма соответственно поставленной задачи исполнителем - компьютером.Во многих задачах при программировании на алгоритмическом языке часто пользуются заменой блока алгоритма на один или несколько операторов, введением новых блоков, заменой одних блоков другими. Процесс программирования заканчивается вводом программы и исходных данных в ЭВМ с клавиатуры с помощью редактора текстов, и для постоянного хранения осуществляется их запись на носитель.
Пятый этап - Тестирование и отладка программы. На этом этапе производят выполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этом программисту приходиться выполнять рутинную работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы. Отладка программы - сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы протестировать программу на контрольных примерах. Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведет себя программа на этих примерах: на одном она может зациклиться (то есть бесконечно повторять одно и то же действие), на другом - дать явно неверный или бессмысленный результат и так далее. Сложные программы отлаживают отдельными фрагментами.
После тестирования и отладки происходит исполнение программы и анализ результатов. Полученные в результате решения выходные данные анализируются постановщиком задачи, и на основании этого анализа вырабатываются соответствующие решения, рекомендации, выводы.
Возможно, что по итогам анализа результатов потребуются пресмотр самого подхода к решению задачи и возврат к первому этапу для повторного выполнения всех этапов с учетом приобретенного опыта. Таким образом, в процессе создания программы некоторые этапы будут повторяться до тех пор, пока мы получим алгоритм и программу, удовлетворяющие указанным свойствам.
25. Главным квалификационным признаком языков и, следовательно, систем программирования является принадлежность к одному из оформившихся к настоящему времени стилей программирования, каждому из которых соответствует своя собственная модель вычислений.
Языки программирования |
|||
Процедурные |
Функциональные |
Логические |
Объектно-ориентированные |
|
|
|
|
|
|
|
|
26. Компиляция и интерпретация
Транслятор представляет собой программу, на основе которой машина преобразует вводимые в нее программы на машинный язык, поскольку вычислительная машина может выполнять программы, записанные только на языке машины, и алгоритмы, заданные на другом языке, должны быть перед их выполнением переведены на машинный язык. Также система программирования может включать в себя:
библиотеки стандартных подпрограмм,
отладчик
компоновщик
и другие сервисные средства
Транслятор (англ. translator – переводчик) – это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler – составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter – истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию – в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощьюкомпилятора.
С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.
Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.
27. Тестирование алгоритма – это проверка правильности или неправильности работы алгоритма на специально заданных тестах или тестовых примерах – задачах с известными входными данными и результатами (иногда достаточны их приближения). Тестовый набор должен быть минимальным и полным, то есть обеспечивающим проверку каждого отдельного типа наборов входных данных, особенно исключительных случаев. Тестирование алгоритма не может дать полной (100%-ой) гарантии правильности алгоритма для всех возможных наборов входных данных, особенно для достаточно сложных алгоритмов. Структурное программирование — метод написания программ небольшими независимыми частями — модулями, каждый из которых связан с какой-либо процедурой или функцией. При этом результирующая программа организуется в виде совокупности взаимосвязанных по определенным правилам момодулей. Это упрощает разработку сложных программных продуктов и их тестирование
28. Программа на языке Pascal всегда состоит из двух основных частей: описания последовательности действий, которые необходимо выполнить, и описания данных, с которыми оперируют действия. Действия представляются операторами языка, данные вводятся посредством описаний и определений. Кроме того, программа может быть снабжена заголовком, который задаст имя программы и ее параметры.
Описания данных текстуально предшествуют описанию действий и должны содержать упоминание всех объектов, используемых в действиях (операторах).
Рассмотрим полную структуру программы на языке Паскаль. В общем случае программа состоит из:
заголовка программы - раздел начинается с ключевого слова program, далее идет название вашей программы. Например, program Area; - обратите внимание, что любой оператор языка Паскальзаканчивается точкой запятой. Также распространенной ошибкой является заголовок программы вида: program 1; Имя программы - это пользовательский идентификатор, и он не может начинаться с цифры.
блок описаний состоит из множества различных блоков программы, каждый из которых отвечает за определенные аспект программы. Мы будем рассматривать возможные блоки по мере необходимости. на схеме ниже вы можете увидеть все из них.
блок операторов - единственный обязательный блок программы, в нем вы размещайте, те команды которые должны быть выполнены в процессе выполнения программы. Блок операторов начинается с ключевого слова begin и заканчивается end с точкой.
Описание меток вводит совокупность идентификаторов и/или целых чисел, предназначенных для организации последовательности вычислений. Посредством меток можно отметить (указать) те операторы, на которые будет передано управление из других точек программы. Передача управления на помеченный оператор реализуется с помощью специального оператора перехода.
Определение констант задает в программе идентификаторы, являющиеся синонимами (представителями) некоторых значений.
Определение типов предназначено для задания конкретных множеств значений. Указанные множества обозначаются именами (идентификаторами) и в дальнейшем могут служить для описания переменных.
Описание переменных вводит совокупность данных, с которыми производятся действия. Переменная обозначается идентификатором; с каждой переменной связывается ее тип, определяющий множество допустимых значений этой переменной и, соответственно, набор допустимых операций.
Наконец, описание процедуры или функции определяет часть программы как отдельную синтаксическую единицу и сопоставляет с ней имя. Впоследствии действия, сосредоточенные в процедуре (функции), могут быть выполнены ("вызваны") посредством указания ее имени. Кроме действий, описание процедуры (функции) может содержать совокупность описаний локальных объектов, образующих собственный контекст имен. Процедуры и функции являются основным средством структурирования программы.
В авторской версии языка Pascal описания всех перечисленных объектов должны быть сосредоточены в соответствующих разделах, а порядок следования разделов фиксирован. Однако, современные реализации, в частности, Turbo Pascal, не содержат такого ограничения. Иными словами, описания и определения всех объектов в блоке могут следовать в произвольном порядке.
МОЖНО по ДОРУГОМУ записать!!!
Программы на языке Турбо Паскаль имеют блочную структуру:
1. Блок типа PROGRAM – имеет имя, состоящее только из латинских букв и цифр. Его присутствие не обязательно, но рекомендуется записывать для быстрого распознавания нужной программы среди других листингов.
2. Программный блок, состоящий в общем случае из 7 разделов:
раздел описания модулей (uses);
раздел описания меток (label);
раздел описания констант (const);
раздел описания типов данных (type);
раздел описания переменных (var);
раздел описания процедур и функций;
раздел описания операторов.
Общая структура программы на языке Турбо Паскаль следующая:
Рrogram ИМЯ..; {заголовок программы в среде Турбо Паскаль} Uses ...; {раздел описания модулей} Var ..; {раздел объявления переменных} ... Begin {начало исполнительной части программы} ... {последовательность операторов} ... End. {конец программы}
Пример работающей программы на языке Турбо Паскаль:
Program first;
Uses Crt;
Var a : string;
BEGIN
a := "Привет!";
writeln(a);
END.
29. 1. Простые типы (скалярные типы) - к таким типам данных относят типы данных таких величин, значения которых не содержит составных частей