Дайте определение понятию запись в бд. Основные понятия о базах данных и субд. Запросы QBE на выборку

На iOS - iPhone, iPod touch 10.04.2019
На iOS - iPhone, iPod touch
  • Перевод

Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

Нефункциональная функция:

A = 0 def increment1(): global a a += 1

Функциональная функция:

Def increment2(a): return a + 1

Вместо проходов по списку используйте map и reduce

Map

Принимает функцию и набор данных. Создаёт новую коллекцию, выполняет функцию на каждой позиции данных и добавляет возвращаемое значение в новую коллекцию. Возвращает новую коллекцию.

Простой map, принимающий список имён и возвращающий список длин:

Name_lengths = map(len, ["Маша", "Петя", "Вася"]) print name_lengths # =>

Этот map возводит в квадрат каждый элемент:

Squares = map(lambda x: x * x, ) print squares # =>

Он не принимает именованную функцию, а берёт анонимную, определённую через lambda. Параметры lambda определены слева от двоеточия. Тело функции – справа. Результат возвращается неявным образом.

Нефункциональный код в следующем примере принимает список имён и заменяет их случайными прозвищами.

Import random names = ["Маша", "Петя", "Вася"] code_names = ["Шпунтик", "Винтик", "Фунтик"] for i in range(len(names)): names[i] = random.choice(code_names) print names # => ["Шпунтик", "Винтик", "Шпунтик"]

Алгоритм может присвоить одинаковые прозвища разным секретным агентам. Будем надеяться, что это не послужит источником проблем во время секретной миссии.

Перепишем это через map:

Import random names = ["Маша", "Петя", "Вася"] secret_names = map(lambda x: random.choice(["Шпунтик", "Винтик", "Фунтик"]), names)

Упражнение 1 . Попробуйте переписать следующий код через map. Он принимает список реальных имён и заменяет их прозвищами, используя более надёжный метод.

Names = ["Маша", "Петя", "Вася"] for i in range(len(names)): names[i] = hash(names[i]) print names # =>

Моё решение:

names = ["Маша", "Петя", "Вася"] secret_names = map(hash, names)

Reduce

Reduce принимает функцию и набор пунктов. Возвращает значение, получаемое комбинированием всех пунктов.

Пример простого reduce. Возвращает сумму всех пунктов в наборе:

Sum = reduce(lambda a, x: a + x, ) print sum # => 10

X – текущий пункт, а – аккумулятор. Это значение, которое возвращает выполнение lambda на предыдущем пункте. reduce() перебирает все значения, и запускает для каждого lambda на текущих значениях а и х, и возвращает результат в а для следующей итерации.

А чему равно а в первой итерации? Оно равно первому элементу коллекции, и reduce() начинает работать со второго элемента. То есть, первый х будет равен второму предмету набора.

Следующий пример считает, как часто слово «капитан» встречается в списке строк:

Sentences = ["капитан джек воробей", "капитан дальнего плавания", "ваша лодка готова, капитан"] cap_count = 0 for sentence in sentences: cap_count += sentence.count("капитан") print cap_count # => 3

Тот же код с использованием reduce:

Sentences = ["капитан джек воробей", "капитан дальнего плавания", "ваша лодка готова, капитан"] cap_count = reduce(lambda a, x: a + x.count("капитан"), sentences, 0)

А откуда здесь берётся начальное значение а? Оно не может быть вычислено из количества повторений в первой строке. Поэтому оно задаётся как третий аргумент функции reduce().

Почему map и reduce лучше?

Во-первых, они обычно укладываются в одну строку.

Во-вторых, важные части итерации,– коллекция, операция и возвращаемое значение,– всегда находятся в одном месте map и reduce.

В-третьих, код в цикле может изменить значение ранее определённых переменных, или влиять на код, находящийся после него. По соглашению, map и reduce – функциональны.

В-четвёртых, map и reduce – элементарные операции. Вместо построчного чтения циклов читателю проще воспринимать map и reduce, встроенные в сложные алгоритмы.

В-пятых, у них есть много друзей, позволяющих полезное, слегка изменённое поведение этих функций. Например, filter, all, any и find.

Упражнение 2 : перепишите следующий код, используя map, reduce и filter. Filter принимает функцию и коллекцию. Возвращает коллекцию тех вещей, для которых функция возвращает True.

People = [{"имя": "Маша", "рост": 160}, {" рост ": "Саша", " рост ": 80}, {"name": "Паша"}] height_total = 0 height_count = 0 for person in people: if "рост" in person: height_total += person[" рост "] height_count += 1 if height_count > 0: average_height = height_total / height_count print average_height # => 120

Моё решение:

people = [{"имя": "Маша", "рост": 160}, {" рост ": "Саша", " рост ": 80}, {"name": "Паша"}] heights = map(lambda x: x["рост"], filter(lambda x: "рост" in x, people)) if len(heights) > 0: from operator import add average_height = reduce(add, heights) / len(heights)

Пишите декларативно, а не императивно

Следующая программа эмулирует гонку трёх автомобилей. В каждый момент времени машина либо двигается вперёд, либо нет. Каждый раз программа выводит пройденный автомобилями путь. Через пять промежутков времени гонка заканчивается.

Примеры вывода:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Текст программы:

From random import random time = 5 car_positions = while time: # decrease time time -= 1 print "" for i in range(len(car_positions)): # move car if random() > 0.3: car_positions[i] += 1 # draw car print "-" * car_positions[i]

Код императивен. Функциональная версия была бы декларативной – она бы описывала, что нужно сделать, а не то, как это надо сделать.

Используем функции

Декларативности можно достичь, вставляя код в функции:

From random import random def move_cars(): for i, _ in enumerate(car_positions): if random() > 0.3: car_positions[i] += 1 def draw_car(car_position): print "-" * car_position def run_step_of_race(): global time time -= 1 move_cars() def draw(): print "" for car_position in car_positions: draw_car(car_position) time = 5 car_positions = while time: run_step_of_race() draw()

Для понимания программы читатель просматривает основной цикл. «Если осталось время, пройдём один шаг гонки и выведем результат. Снова проверим время». Если читателю надо будет разобраться, как работает шаг гонки, он сможет прочесть его код отдельно.

Комментарии не нужны, код объясняет сам себя.

Разбиение кода на функции делает код более читаемым. Этот приём использует функции, но лишь как подпрограммы. Они упаковывают код, но не делают его функциональным. Функции влияют на окружающий их код и меняют глобальные переменные, а не возвращают значения. Если читатель встречает переменную, ему потребуется найти, откуда она взялась.

Вот функциональная версия этой программы:

From random import random def move_cars(car_positions): return map(lambda x: x + 1 if random() > 0.3 else x, car_positions) def output_car(car_position): return "-" * car_position def run_step_of_race(state): return {"time": state["time"] - 1, "car_positions": move_cars(state["car_positions"])} def draw(state): print "" print "\n".join(map(output_car, state["car_positions"])) def race(state): draw(state) if state["time"]: race(run_step_of_race(state)) race({"time": 5, "car_positions": })

Теперь код разбит на функциональные функции. Тому есть три признака. Первый – нет расшаренных переменных. time и car_positions передаются прямиком в race(). Второе – функции принимают параметры. Третье – переменные не меняются внутри функций, все значения возвращаются. Каждый раз, когда run_step_of_race() проделывает следующий шаг, он передаётся опять в следующий.

Вот вам две функции zero() и one():

Def zero(s): if s == "0": return s def one(s): if s == "1": return s

Zero() принимает строку s. Если первый символ – 0, то возвращает остаток строки. Если нет – тогда None. one() делает то же самое, если первый символ – 1.

Представим функцию rule_sequence(). Она принимает строку и список из функций-правил, состоящий из функций zero и one. Она вызывает первое правило, передавая ему строку. Если не возвращено None, то берёт возвращённое значение и вызывает следующее правило. И так далее. Если возвращается None, rule_sequence() останавливается и возвращает None. Иначе – значение последнего правила.

Примеры входных и выходных данных:

Print rule_sequence("0101", ) # => 1 print rule_sequence("0101", ) # => None

Императивная версия rule_sequence():

Def rule_sequence(s, rules): for rule in rules: s = rule(s) if s == None: break return s

Упражнение 3 . Этот код использует цикл. Перепишите его в декларативном виде с использованием рекурсии.

Моё решение:

def rule_sequence(s, rules): if s == None or not rules: return s else: return rule_sequence(rules(s), rules)

Используйте конвейеры (pipelines)

Теперь перепишем другой вид циклов при помощи приёма под названием конвейер.

Следующий цикл изменяет словари, содержащие имя, неправильную страну происхождения и статус некоторых групп.

Bands = [{"name": "sunset rubdown", "country": "UK", "active": False}, {"name": "women", "country": "Germany", "active": False}, {"name": "a silver mt. zion", "country": "Spain", "active": True}] def format_bands(bands): for band in bands: band["country"] = "Canada" band["name"] = band["name"].replace(".", "") band["name"] = band["name"].title() format_bands(bands) print bands # => [{"name": "Sunset Rubdown", "active": False, "country": "Canada"}, # {"name": "Women", "active": False, "country": "Canada" }, # {"name": "A Silver Mt Zion", "active": True, "country": "Canada"}]

Название функции «format» слишком общее. И вообще, код вызывает некоторое беспокойство. В одном цикле происходят три разные вещи. Значение ключа "country" меняется на "Canada". Убираются точки и первая буква имени меняется на заглавную. Сложно понять, что код должен делать, и сложно сказать, делает ли он это. Его тяжело использовать, тестировать и распараллеливать.

Сравните:

Print pipeline_each(bands, )

Всё просто. Вспомогательные функции выглядят функциональными, потому что они связаны в цепочку. Выход предыдущей – вход следующей. Их просто проверить, использовать повторно, проверять и распараллеливать.

Pipeline_each() перебирает группы по одной, и передаёт их функциям преобразования, вроде set_canada_as_country(). После применения функции ко всем группам, pipeline_each() делает из них список и передаёт следующей.

Посмотрим на функции преобразования.

Def assoc(_d, key, value): from copy import deepcopy d = deepcopy(_d) d = value return d def set_canada_as_country(band): return assoc(band, "country", "Canada") def strip_punctuation_from_name(band): return assoc(band, "name", band["name"].replace(".", "")) def capitalize_names(band): return assoc(band, "name", band["name"].title())

Каждая связывает ключ группы с новым значением. Без изменения оригинальных данных это тяжело сделать, поэтому мы решаем это с помощью assoc(). Она использует deepcopy() для создания копии переданного словаря. Каждая функция преобразовывает копию и возвращает эту копию.

Всё вроде как нормально. Оригиналы данных защищены от изменений. Но в коде есть два потенциальных места для изменений данных. В strip_punctuation_from_name() создаётся имя без точек через вызов calling replace() с оригинальным именем. В capitalize_names() создаётся имя с первой прописной буквой на основе title() и оригинального имени. Если replace и time не функциональны, то и strip_punctuation_from_name() с capitalize_names() не функциональны.

К счастью, они функциональны. В Python строки неизменяемы. Эти функции работают с копиями строк. Уфф, слава богу.

Такой контраст между строками и словарями (их изменяемостью) в Python демонстрирует преимущества языков типа Clojure. Там программисту не надо думать, не изменит ли он данные. Не изменит.

Упражнение 4 . Попробуйте сделать функцию pipeline_each. Задумайтесь над последовательностью операций. Группы – в массиве, передаются по одной для первой функции преобразования. Затем полученный массив передаётся по одной штучке для второй функции, и так далее.

Моё решение:

def pipeline_each(data, fns): return reduce(lambda a, x: map(x, a), fns, data)

Все три функции преобразования в результате меняют конкретное поле у группы. call() можно использовать, чтобы создать абстракцию для этого. Она принимает функцию и ключ, к которому она будет применена.

Set_canada_as_country = call(lambda x: "Canada", "country") strip_punctuation_from_name = call(lambda x: x.replace(".", ""), "name") capitalize_names = call(str.title, "name") print pipeline_each(bands, )

Или, жертвуя читаемостью:

Print pipeline_each(bands, )

Код для call():

Def assoc(_d, key, value): from copy import deepcopy d = deepcopy(_d) d = value return d def call(fn, key): def apply_fn(record): return assoc(record, key, fn(record.get(key))) return apply_fn

Что тут у нас происходит.

Один. call – функция высшего порядка, т.к. принимает другую функцию как аргумент и возвращает функцию.

Два. apply_fn() похожа на функции преобразования. Получает запись (группу). Ищет значение record. Вызывает fn. Присваивает результат в копию записи и возвращает её.

Три. call сам ничего не делает. Всю работу делает apply_fn(). В примере использования pipeline_each(), один экземпляр apply_fn() задаёт "country" значение "Canada". Другой – делает первую букву прописной.

Четыре. При выполнении экземпляра apply_fn() функции fn и key не будут доступны в области видимости. Это не аргументы apply_fn() и не локальные переменные. Но доступ к ним будет. При определении функции она сохраняет ссылки на переменные, которые она замыкает – те, что были определены снаружи функции, и используются внутри. При запуске функции переменные ищутся среди локальных, затем среди аргументов, а затем среди ссылок на замкнутые. Там и найдутся fn и key.

Пять. В call нет упоминания групп. Это оттого, что call можно использовать для создания любых конвейеров, независимо от их содержимого. Функциональное программирование, в частности, строит библиотеку общих функций, пригодных для композиций и для повторного использования.

Молодцом. Замыкания, функции высшего порядка и область видимости – всё в нескольких параграфах. Можно и чайку с печеньками выпить.

Остаётся ещё одна обработка данных групп. Убрать всё, кроме имени и страны. Функция extract_name_and_country():

Def extract_name_and_country(band): plucked_band = {} plucked_band["name"] = band["name"] plucked_band["country"] = band["country"] return plucked_band print pipeline_each(bands, ) # => [{"name": "Sunset Rubdown", "country": "Canada"}, # {"name": "Women", "country": "Canada"}, # {"name": "A Silver Mt Zion", "country": "Canada"}]

Extract_name_and_country() можно было бы написать в обобщённом виде под названием pluck(). Использовалась бы она так:

Print pipeline_each(bands, )])

Упражнение 5 . pluck принимает список ключей, которые надо извлечь из записей. Попробуйте её написать. Это буде функция высшего порядка.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

БЕЗОПАСНОСТЬ СИСТЕМ БАЗ ДАННЫХ

Л екция 1. Основные понятия систем базы данных

База данных - совокупность данных, хранимых в соответствии со схемой данных, манипулирование которых осуществляется в соответствии с правилами средств моделирования данных.

База данных - совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причём такое собрание данных, которое поддерживают одну или более областей применения.

СУБД - Это совокупность программ и лингвистических средств общего или специального назначения, обеспечивающих управление, создание и использование БД.

Классификация СУБД

I. По модели данных.

1. Иерархические;

2. Сетевые;

3. Реляционные;

4. Объектно-ориентированные;

5. Обьектно-реляционные;

II. По способу доступа БД.

1. Файлсерверный;

2. Клиентсерверный;

3. Встраиваемые.

Основные функции СУБД

1. Непосредственное управление файлами БД .

Обеспечение необходимых структур внешней памятью, как для хранения данных, непосредственно входящих в БД, так и для служебных целей (например, для ускорения поиска).

2. Управление буферами оперативной памяти .

СУБД обычно работают с БД значительного размера, и этот размер всегда больше доступной оперативной памяти, поэтому единственным доступным способом увеличения скорости производительности является буферизация данных в оперативной памяти, поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.

3. Управление транзакциями .

Транзакция - последовательность операций над БД рассматриваемой СУБД, как единое целое. Либо транзакция успешно выполняется и СУБД фиксирует изменения в БД, произведенные этой транзакцией, либо ни одно из этих изменений никак не отображается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД.

4. Журнализация .

Одним из основных требований к СУБД является надёжность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматривают 2 вида аппаратных сбоев: 1) мягкий сбой, который можно трактовать как внезапную остановку компьютера; 2) жесткий сбой, который можно трактовать внезапным сбоем компьютера, который характеризуется потерей частью информации на внешних носителях. Журнал - особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью, в которую поступают записи обо всех изменениях в основной части БД.

5. Поддержка языков БД.

Для работы с БД используются специальные языки, называемые языками БД. В ранних версиях СУБД поддерживалось несколько языков, специализированных по выполняемым функциям. Обычно выделялось два: язык для выделения структур базы данных и язык манипулирования данными. Сейчас таким языком является TSQL .

Типовая организация современной СУБД

1. Ядро .

Отвечает за управление в СУБД данными во внешней памяти, управлением буферами оперативной памяти, управлением транзакциями и журнализацию. Можно выделить компоненты ядра: менеджер данных, буферов, транзакций, журналов.

2. Компилятор языка .

Основной функцией компилятора языка является компиляция операторов языка, под некоторой управляемой программой.

3. Утилиты БД .

В них выделяют такие процедуры, которые слишком накладно выполнять с использованием языка БД, такие как загрузка БД, глобальная загрузка целостности и так далее.

Лекция 2. Введение в реляционную модель данных

Реляционный подход к организации БД был заложен в конце 1960-х годов Эдгаром Коддом. В современности данных подход является одним из распространенных.

Достоинствами реляционного подхода являются:

Основан на небольшом числе интуитивно понятных абстракций, на основе которых возможно простое моделирование наиболее распространенных предметных областей. Эти абстракции могут быть точно и формально определены. Теоретическом базисом реляционного подхода служит аппарат теории множеств и математической логики. Реляционный подход обеспечивает возможность ненавигационного манипулирования данными без необходимости знания конкретной физической структуры базы данных во внешней памяти.

Основные понятия реляционных баз данных

1. Тип данных;

3. Атрибут;

4. Кортеж;

5. Отношение;

6. Первичный ключ.

Тип данных

Значения данных, хранимые в реляционной базе данных являются типизированными, то есть известен тип каждого хранимого значения. Понятие типа данных в реляционной модели полностью соответствует понятию типы данных языка программирования.

Домен

В общем виде домен определяется путем задания некоторого базового типа данных, к которому относятся элементы домена и произвольного логического выражения, применяемого элементу этого типа данных (ограничение домена). Элемент будет являться элементом домена только в том случае, если вычисления ограничения домена дает результат ИСТИНА. С каждым доменом связываются Имя уникальной среди имен всех доменов и соответствующей базе данных.

Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения

Заголовком схемы отношения r отношение (Hr) называется конечное множество , где A - имя атрибута, Т обозначает имя некоторого базового типа или ранее определенного домена. По определению требуется, чтобы все имена атрибутов в заголовке были различны.

Кортежем tr соответствующим заголовку Hr называется множество упорядоченных триплетов вида: , где v должен являться допустимым значением типа данных или домена.

Телом Br называется произвольное множество кортежей tr.

Значением Vr называется пара множества Hr и Br. Заголовок и тело данных.

Первичный ключ

Первичным ключом является такое подмножество, которых что в любое время значение первичного ключа в любом кортеже тела отношения отличается от значения первичного ключа в любом другом кортеже тела этого отношения. А никакое собственное подмножество S этим свойством не обладает.

Фундаментальные свойства отношений

1. Отсутствие кортежей дубликатов. Это свойство следует из определения тела отношения как множество кортежей. В классической теории множеств по определению множество состоит из различных элементов. Именно из этого свойства вытекает наличие у каждого значения отношения первичного ключа. То есть у минимального множества атрибутов, являющегося подмножества заголовка данного отношения, составное значение которых уникально определяет кортеж отношения. Понятие первичного ключа является исключительно важным в связи с понятием целостности баз данных.

2. Отсутствие упорядоченности кортежей.

3. Отсутствие упорядоченности атрибутов.

4. Атомарность значения атрибутов. Значения всех атрибутов являются атомарными. Это следует из определения домена, как потенциального множества значений скалярного типа. То есть среди значений домена не могут содержаться значения с видимой структурой, в том числе множества значений. Главное в атомарности значений атрибутов состоит в том, что реляционная СУБД не должна обеспечивать пользователю явновидимой структуры внутренних данных.

Типы данных

Целые числа Строки символов Деньги Номера отделов

Домены (кроме первичного ключа)

Перв.ключ и номера проп-ов. Имена Размеры зарплат Номера отделов

Атрибуты

Лекция 3. Реляционная алгебра и нормализация

Базисные средства манипулирования реляционными данными составляющие определяются 2 базовых механизма манипулирования реляционными данными.

1) основанные на теории множеств реляционная алгебра и базирующиеся на мат. логике (на исчислении предикатов) реляционные исчисления. В свою очередь рассматривают два вида реляционного исчисления: исчисление доменов и предикатов. Все механизмы обладают одним важным свойством: они замкнуты относительно понятия отношения. Это означает, что выражения реляционной алгебры и формулы рел вычисления определяются над отношениями реляционной базы данных и результатом их выполнения также является отношения. Конкретный язык манипулирования рел. базами данных называется реляционно полным, если любой запрос, выражаемый с помощью одного выражения рел. алгебры или одной формулой реляционного исчисления может быть выражен с помощью одного оператора этого языка.

2) Осн. идея рел. алгебры в том, что отношения явл. множествами, то средствами манипулирования отношениями могут базироваться на традиционных теоретико-множественных операций, дополненными некоторыми специальными операциями, специфичными для БД.

В состав теоретико-множественных операций входят:

объединение

пересечение

разность

прямое произведение

Специальные операции:

ограничение отношений

проекция отношений

соединение отношений;

деление отношений;

Кроме того включают операцию присваивания, которые позволяют сохранить результаты алгебраических отношений, и операцию переименования, которая дает возможность корректно сформировать заголовок результирующего отношения.

Общая интерпретация рел. операций:

1) При выполнении операции объединения двух отношений, производится отношение, включающих все кортежи, входящее в хотя бы одно из отношений операндов.

2) Операция пересечений двух отношений производит отношение, включающее все кортежи, входящие в оба отношений операндов.

3) Отношение, являющееся разностью двух отношений, включает все кортежи, входящие в отношение первого операнда, такие что ни один из них не входит в отношение, являющимся вторым операндом.

4) При выполнении прямого произведения двух отношений производится отношение, кортежи которого являются... (сцеплением) кортежей первого и второго операнда.

5) Результатом ограничения отношений по некоторому условию является отношение, включающее кортежи отношения операнда, удовлетворяющие этому условию.

6) При выполнении проекции отношений на заданный набор атрибутов, ...... кортежи которого производятся путем взятия соответствующих значений, из кортежей отношения операнда.

7) При соединении двух отношений по некоторому условию образуется результирующее отношение, кортежи которого являются контетенацией (сцеплением) кортежей первого и второго отношения и удовлетворяет условию.

8) У операции деления два операнда: бинарные и унарные отношения. результирующее отношение состоит из одноатрибутного значения, включающее значение первого атрибута кортежей, первого операнда таких, что множество значений второго атрибута при фиксированном значении второго атрибута совпадает со множ. значений второго операнда.

9) Операция переименования производит отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены.

Особенности теоретико-множественных операций реляционной алгебры. база данный компиляция реляционный

Понятие совместимости отношений об объединений

Два отношения совместимых по объединению только в том случае, когда обладают одинаковыми заголовками, более точно это означает, что в заголовках содержится один и тот же набор атрибутов, и одноименные атрибуты определены на одном и том же домене. Если два отношения почти совместимы по объединению, то есть во всем, кроме имен атрибутов, то их можно сделать полностью совместимыми, путем использования операции переименования.

Понятие совместимости по взятию расширенного прямого произведения. В том случае, если множество имен этих отношений не пересекаются. Все 4 теоретико-множественных операций рел. алгебры являются ассоциативными.

Специальные реляционные операции

Операция ограничения. Требует наличие двух операндов, ограничиваемых отношений и простого условного ограничения.

a comp-on b - ....

a comp-on const - литерально заданная константа

В результате выполнения операции ограничения производится отношение, заголовок которого совпадает с заголовком отношения операнда, а в тело входят те кортежи отношения операндов, для которых значением ограничения является TRUE.

Операция соединения отношений требует наличия двух операндов, соединяемых отношений и третьего операнда как и в операции соединения отношений она имеет такой же вид. Результатом операции соединения является отношение, получаемое путем выполнения операции путем ограничения по условию прямого произведения отношений a и b.

Операция деления отношений. Результатом деления а на b являются унарные отношения,состоящий из кортежей v таких что в отношении кортежей множество {w}включает множество значений...

Проектирование реляционных БД

При проектировании решаются две проблемы: каким образом отобразить предметно-объектные области в абстрактные модели данных, чтобы это отображение не противоречило семантике предметной области и было по возможности лучше, часто эту проблему называют проблему логического проектирования БД.

вторая - как обеспечить эффективность выполнения запросах в базе данных. Каким образом, имея особенности в конкретной субд расположить данные во внеш памяти и создание доп стр-р например индексов будет требоваться. Это проблема - проблема физ. проектирования бд.

Проектирование БД с использованием нормализации - классический подход, при котором весь процесс, весь процесс проектирования сводится в терминах реляционных моделей данных методом последовательных отношений к удовлетворительному набор схем отношений. Процесс проектирования представляет собой процесс нормализации схем отношений. Каждая след. нормальная форма обладает лучшими свойствами, чем предыдущая. В теории рел бд выделяется след послед-ть норм форм:

1 норм форма

2 норм форма

3 норм форма

Нормальная форма Бойса-Кодде

4 нормальная форма

5 нормальная форма или нормальная форма проекции соединения.

Основные свойства норм форм:

каждая след нф в некотором смысле лучше предыдущей.

при переходе к след нф свойства предыдущих нф сохраняются.

Определение 1. Функциональная зависимость в отношении r атрибут y функционально зависит от атрибута х только в том случае, если каждому значению х соответствует в точности одно значение у.

Полная функциональная зав-ть r(x) r(y) если y не зависит функционально от любого точного значения х.

Транзитивная зависимость если существует атрибут Z, что имеются функциональные зависимости...

Неключевой атрибут - любой атрибут отношения, невходящий в состав первичного ключа.

Взаимнонезависимые атрибуты (2 или более) - если не один из этих атрибутов не является функционально зависимым от других.

Отношение находится в 1нф тогда, когда каждый его кортеж содержит только одно значение для каждого из атрибутов. В реляц модели отношений все они находятся в нормальной форме.

вторая нормальная форма, только в том случае, когда она находится в первой нормальной форме и каждый неключевой атрибут полностью зависит от первичного ключа.

Третья нормальная форма. Отношение r находится в том случае, если она нах-ся во второй и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

СОТРУДНИК

ОТДЕЛ

ТЕЛЕФОН

БУХГАЛТЕР

БУХГАЛТЕР

СНАБЖЕНЕЦ

Лекция 4. Операторы языка SQL

SELECT служит для получения любого количества данных из одной или нескольких таблиц. В общем случае результатом выполнения предложения SELECT ЯВЛЯЕТСЯ ДРУГАЯ ТАБЛИЦА К этой новой таблице вновь может быть применена операция SELECT И так далее

1) Самостоятельная команда на получение и вывод строк в таблице, сформированной из столбцов и строк одной или нескольких таблиц представлений

2) как элемент WHERE или HAVING условия. Это называется ложным запросом

3) фраза выбора в командах CREATE VIEW DECLARE CURSOR INSERT

4) Средство присвоения глобальным переменным значений и строк сформированной таблицы. INTO

Имеет следующий формат.

SELECT [ выбрать данные и выполнить перед их выводом преобразования в соответствии с указанными выражениями и или функциями

Элемент, -\\-} FROM перечисление.......

базовая таблица | представления],

Строки из указанных таблиц должны соответствовать указанному перечню условий отбора строк

Фраза]

GROUP BY - операция по группировке по указанному перечню столбцов, с тем, чтобы получить для каждой группы единственное агрегированное значение.

HAVING - условие фильтрации по группам.

5. Простая выборка.

* служит псевдонимом для

выбор конкретного поля

Исключение дубликатов. Для исключения дубликатов и одновременного упорядочивания перечня применяется запрос с ключевым словом DISTINCT.

Выборка вычисляемых значений.

Фраза SELECT может содержать не только перечень столбцов, но и выражение.

Выборка с использованием фразы WHERE. В синтаксисе фразы для отбора нужных строк таблицы можно использовать базовые операторы сравнения. И возможность использования составных логических выражений.

WHERE P1 = 6 AND P2 = 8

Можно использовать BETWEEN для выборки значений в интервале.

BETWEEN удобно использовать при работе с данными задаваемыми интервалами, начало и конец, которые расположены в разных таблицах.

Использование оператора IN.

IN (3, 4, 5) <=> P1= 3 OR P1 = 4 OR P1 = 5

Использование LIKE

Данный оператор позволяет отыскать все значения указанного столбца, соответствующий образцу.

Заменяет любой одиночный символ.

% - заменяет любую последовательность из n символов.

Вовлечение неопределенного значения (NULL). Для проверки неопределенного значения используется IS.

Выборка с упорядочиванием. Для сортировки данных используется оператор ORDER BY. Можно упорядочить по возрастанию по умолчанию. Ключевое слово ASC позволит сортировать по убыванию.

Агрегирование данных

В SQL существует ряд стандартных функций. Кроме специального случая COUNT *, каждый из этих функций... столбца некоторой таблицы и создаёт несколько значений.

COUNT - количество значений в столбце

SUM - сумма значений в столбце

AVG - среднее значение в столбце

Столбец должен содержать числовые значения. Аргумент у всех функций кроме COUNT *, предшествует ключевое слово DISTINCT, указывающее...

А COUNT* служит для подсчета всех строк в таблице с дубликатами.

Если не используется фраза GROUP BY то в SELECT можно включать лишь SQL функции или выражения, содержащие такие функции.

Фраза GROUP BY

Инициирует перекомпоновку указанных во FROM таблицы по группам, каждая из которых имеет одинаковые значения в столбце, указанном в GROUP BY. Данная фраза не предполагает сортировки.

Фраза HAVING играет такую же роль для групп, что и WHERE для строк. Те используется для исключения групп.

Размещено на Allbest.ru

Подобные документы

    Современные базы данных – многофункциональные программные системы, работающие в открытой распределенной среде изучении администрирования базы данных. Способы организации внешней памяти баз данных. Системы управления базами данных для хранения информации.

    курсовая работа , добавлен 07.12.2010

    Основные понятия базы данных и систем управления базами данных. Типы данных, с которыми работают базы Microsoft Access. Классификация СУБД и их основные характеристики. Постреляционные базы данных. Тенденции в мире современных информационных систем.

    курсовая работа , добавлен 28.01.2014

    Понятие базы данных, её структура. Общие принципы хранения информации. Краткая характеристика особенностей иерархической, сетевой и реляционной модели организации данных. Structured Query Language: понятие, состав. Составление таблиц в Microsoft Access.

    лекция , добавлен 25.06.2013

    Преимущества и недостатки роботизированной сварки. Характеристика видов систем управления базами данных. Информационная модель сварочного робота, системы управления роботом сварочных клещей. Критерии выбора робота и структура запроса на выборку.

    курсовая работа , добавлен 22.12.2014

    Устройства внешней памяти. Система управления базами данных. Создание, ведение и совместное использование баз данных многими пользователями. Понятие системы программирования. Страницы доступа к данным. Макросы и модули. Монопольный режим работы.

    реферат , добавлен 10.01.2011

    Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.

    лекция , добавлен 19.08.2013

    Характеристика категорий современных баз данных. Исследование особенностей централизованных и распределенных баз данных. Классификация систем управления базами данных по видам программ и применению. Управление буферами оперативной памяти и транзакциями.

    курсовая работа , добавлен 10.03.2016

    Классификации баз данных по характеру сберегаемой информации, способу хранения данных и структуре их организации. Современные системы управления базами данных и программы для их создания: Microsoft Office Access, Cronos Plus, Base Editor, My SQL.

    презентация , добавлен 03.06.2014

    Особенности управления информацией в экономике. Понятие и функции системы управления базами данных, использование стандартного реляционного языка запросов. Средства организации баз данных и работа с ними. Системы управления базами данных в экономике.

    контрольная работа , добавлен 16.11.2010

    Структура и функции системы управления базами данных (СУБД). Управление хранением данных и доступом к ним. Защита и поддержка целостности данных. Надежность хранения данных во внешней памяти. Классификация СУБД по способу доступа к базе данных.

Аннотация: В лекции рассматривается общий смысл понятий базы данных (БД) и системы управления базами данных (СУБД). Даются основные понятия, относящиеся к базе данных такие, как алгоритм, кортеж, объект, сущность. Основные требования, предъявляемые к банку данных. Определения БД и СУБД.

Цель лекции: Уяснить разницу между базой данных и системой управления базой данных. Ознакомиться с основными требованиями, которые предъявляются к банку данных и основными определениями, относящимися к БД и СУБД.

Рассмотрим общий смысл понятий базы данных (БД) и системы управления базами данных (СУБД).

С самого начала развития вычислительной техники образовались два основных направления использования ее.

Первое направление - применение вычислительной техники для выполнения численных расчетов, которые слишком долго или вообще невозможно производить вручную. Становление этого направления способствовало интенсификации методов численного решения сложных математических задач, развитию класса языков программирования, ориентированных на удобную запись численных алгоритмов, становлению обратной связи с разработчиками новых архитектур ЭВМ.

Второе направление, это использование средств вычислительной техники в автоматических или автоматизированных информационных системах . В самом широком смысле информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация имеет достаточно сложную структуру. Классическими примерами информационных систем являются банковские системы , системы резервирования авиационных или железнодорожных билетов, мест в гостиницах и т.д.

На самом деле, второе направление возникло несколько позже первого. Это связано с тем, что на заре вычислительной техники компьютеры обладали ограниченными возможностями в части памяти. Понятно, что можно говорить о надежном и долговременном хранении информации только при наличии запоминающих устройств, сохраняющих информацию после выключения электрического питания. Оперативная память этим свойством обычно не обладает. В начале, использовались два вида устройств внешней памяти: магнитные ленты и барабаны. При этом емкость магнитных лент была достаточно велика, но по своей физической природе они обеспечивали последовательный доступ к данным. Магнитные же барабаны (они больше всего похожи на современные магнитные диски с фиксированными головками) давали возможность произвольного доступа к данным, но были ограниченного размера.

Легко видеть, что указанные ограничения не очень существенны для чисто численных расчетов. Даже если программа должна обработать (или произвести) большой объем информации, при программировании можно продумать расположение этой информации во внешней памяти, чтобы программа работала как можно быстрее.

С другой стороны, для информационных систем, в которых потребность в текущих данных определяется пользователем, наличие только магнитных лент и барабанов неудовлетворительно. Представьте себе покупателя билета, который стоя у кассы должен дождаться полной перемотки магнитной ленты. Одним из естественных требований к таким системам является средняя быстрота выполнения операций.

Именно требования к вычислительной технике со стороны не численных приложений вызвали появление съемных магнитных дисков с подвижными головками , что явилось революцией в истории вычислительной техники. Эти устройства внешней памяти обладали существенно большей емкостью, чем магнитные барабаны, обеспечивали удовлетворительную скорость доступа к данным в режиме произвольной выборки, а возможность смены дискового пакета на устройстве позволяла иметь практически неограниченный архив данных.

С появлением магнитных дисков началась история систем управления данными во внешней памяти. До этого каждая прикладная программа, которой требовалось хранить данные во внешней памяти, сама определяла расположение каждой порции данных на магнитной ленте или барабане и выполняла обмены между оперативной и внешней памятью с помощью программно-аппаратных средств низкого уровня (машинных команд или вызовов соответствующих программ операционной системы). Такой режим работы не позволяет или очень затрудняет поддержание на одном внешнем носителе нескольких архивов долговременно хранимой информации. Кроме того, каждой прикладной программе приходилось решать проблемы именования частей данных и структуризации данных во внешней памяти.

Историческим шагом стал переход к использованию систем управления файлами. С точки зрения прикладной программы файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Правила именования файлов, способ доступа к данным, хранящимся в файле, и структура этих данных зависят от конкретной системы управления файлами и, возможно, от типа файла. Система управления файлами берет на себя распределение внешней памяти, отображение имен файлов в соответствующие адреса внешней памяти и обеспечение доступа к данным.

Любая задача обработки информации и принятия решений может быть представлена в виде схемы, показанной на рис. 1.1 .


Рис. 1.1.

Определение основных терминов

Дадим определения основных терминов. В качестве составных частей схемы выделяются информация (входная и выходная) и правила ее преобразования.

Правила могут быть в виде алгоритмов, процедур и эвристических последовательностей.

Алгоритм - последовательность правил перехода от исходных данных к результату. Правила могут выполняться компьютером или человеком.
Данные - совокупность объективных сведений.
Информация - сведения, неизвестные ранее получателю информации, пополняющие его знания, подтверждающие или опровергающие положения и соответствующие убеждения. Информация носит субъективный характер и определяется уровнем знаний субъекта и степенью его восприятия. Информация извлекается субъектом из соответствующих данных.
Знания - совокупность фактов, закономерностей и эвристических правил, с помощью которых решается поставленная задача.

Последовательность операций обработки данных называют информационной технологией (ИТ). В силу значительного количества информации в современных задачах она должна быть упорядочена. Существует два подхода к упорядочению.

  1. Данные связаны с конкретной задачей (технология массивов) - упорядочение по использованию. Вместе с тем алгоритмы более подвижны (могут чаще меняться), чем данные. Это вызывает необходимость переупорядочения данных, которые к тому же могут повторяться в различных задачах.
  2. В связи с этим предложена другая, широко используемая технология баз данных, представляющая собой упорядочение по хранению.

Под базой данных (БД) понимают совокупность хранящихся вместе данных при наличии такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений. Целью создания баз данных , как разновидности информационной технологии и формы хранения данных, является построение системы данных, не зависящих от принятых алгоритмов (программного обеспечения), применяемых технических средств и физического расположения данных в ЭВМ; обеспечивающих непротиворечивую и целостную информацию при нерегламентируемых запросах. БД предполагает многоцелевое ее использование (несколько пользователей, множество форм документов и запросов одного пользователя).

База знаний (БЗ) представляет собой совокупность БД и используемых правил, полученных от лиц, принимающих решения ( ЛПР ).

Наряду с понятием "база данных" существует термин " банк данных ", который имеет две трактовки.

  1. В настоящее время данные обрабатываются децентрализовано (на рабочих местах) с помощью персональных компьютеров (ПК). Первоначально же использовалась централизованная обработка на больших ЭВМ. В силу централизации базу данных называли банком данных и потому часто не делают различия между базами и банками данных.
  2. Банк данных - база данных и система управления ею (СУБД). СУБД (например, FoxPro) представляет собой приложение для создания баз данных как совокупности двумерных таблиц.
Банк данных (БнД) - это система специально организованных данных, программных, языковых, организационных и технических средств, предназначенных для централизованного накопления и коллективного многоцелевого использования данных.
Базы данных (БД) - это именованная совокупность данных, отображающая состояние объектов и их отношения в рассматриваемой предметной области. Характерной чертой баз данных является постоянство: данные постоянно накапливаются и используются; состав и структура данных, необходимы для решения тех или иных прикладных задач, обычно постоянны и стабильны во времени; отдельные или даже все элементы данных могут меняться - но и это есть проявления постоянства - постоянная актуальность.
Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Иногда в составе банка данных выделяют архивы. Основанием для этого является особый режим использования данных, когда только часть данных находится под оперативным управлением СУБД. Все остальные данные обычно располагаются на носителях, оперативно не управляемых СУБД. Одни и те же данные в разные моменты времени могут входить как в базы данных, так и в архивы. Банки данных могут не иметь архивов, но если они есть, то в состав банка данных может входить и система управления архивами.

Эффективное управление внешней памятью являются основной функцией СУБД . Эти обычно специализированные средства настолько важны с точки зрения эффективности, что при их отсутствии система просто не сможет выполнять некоторые задачи уже по тому, что их выполнение будет занимать слишком много времени. При этом ни одна из таких специализированных функций не является видимой для пользователя. Они обеспечивают независимость между логическим и физическим уровнями системы: прикладной программист не должен писать программы индексирования, распределять память на диске и т. д.

Основные требования, предъявляемые к банкам данных

Развитие теории и практики создания информационных систем, основанных на концепции баз данных, создание унифицированных методов и средств организации и поиска данных позволяют хранить и обрабатывать информацию о все более сложных объектах и их взаимосвязях, обеспечивая многоаспектные информационные потребности разных пользователей. Основные требования, предъявляемые к банкам данных, можно сформулировать так:

  • Многократное использование данных: пользователи должны иметь возможность использовать данные различным образом.
  • Простота: пользователи должны иметь возможность легко узнать и понять, какие данные имеются в их распоряжении.
  • Легкость использования: пользователи должны иметь возможность осуществлять (процедурно) простой доступ к данным, при этом все сложности доступа к данным должны быть скрыты в самой системе управления базами данных.
  • Гибкость использования: обращение к данным или их поиск должны осуществляться с помощью различных методов доступа.
  • Быстрая обработка запросов на данные: запросы на данные должны обрабатываться с помощью высокоуровневого языка запросов , а не только прикладными программами, написанными с целью обработки конкретных запросов.
  • Язык взаимодействия конечных пользователей с системой должен обеспечивать конечным пользователям возможность получения данных без использования прикладных программ.

База данных - это основа для будущего наращивания прикладных программ: базы данных должны обеспечивать возможность быстрой и дешевой разработки новых приложений.

  • Сохранение затрат умственного труда: существующие программы и логические структуры данных не должны переделываться при внесении изменений в базу данных.
  • Наличие интерфейса прикладного программирования: прикладные программы должны иметь возможность просто и эффективно выполнять запросы на данные; программы должны быть изолированными от расположения файлов и способов адресации данных.
  • Распределенная обработка данных: система должна функционировать в условиях вычислительных сетей и обеспечивать эффективный доступ пользователей к любым данным распределенной БД, размещенным в любой точке сети.
  • Адаптивность и расширяемость: база данных должна быть настраиваемой, причем настройка не должна вызывать перезаписи прикладных программ. Кроме того, поставляемый с СУБД набор предопределенных типов данных должен быть расширяемым - в системе должны иметься средства для определения новых типов и не должно быть различий в использовании системных и определенных пользователем типов.
  • Контроль целостности данных: система должна осуществлять контроль ошибок в данных и выполнять проверку взаимного логического соответствия данных.
  • Восстановление данных после сбоев: автоматическое восстановление без потери данных транзакции. В случае аппаратных или программных сбоев система должна возвращаться к некоторому согласованному состоянию данных.
  • Вспомогательные средства должны позволять разработчику или
  • Лингвистические средства;
  • Программные средства;
  • Технические средства;
  • Организационно-административные подсистемы и нормативно-методическое обеспечение.

Организационно-методические средства - это совокупность инструкций, методических и регламентирующих материалов, описаний структуры и процедуры работы пользователя с СУБД и БД.

Пользователи БД и СУБД

Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи ; администраторы баз данных .

Особо следует поговорить об администраторе базы данных (АБД). Естественно, что база данных строится для конечного пользователя (КП). Однако первоначально предполагалось, что КП не смогут работать без специалиста-программиста, которого назвали администратором базы данных. С появлением СУБД они взяли на себя значительную часть функций АБД, особенно для БД с небольшим объемом данных. Однако для крупных централизованных и распределенных баз данных потребность в АБД сохранилась. В широком плане под АБД понимают системных аналитиков, проектировщиков структур данных и информационного обеспечения, проектировщиков технологии процессов обработки, системных и прикладных программистов, операторов, специалистов в предметной области и по техническому обслуживанию. Иными словами, в крупных базах данных это могут быть коллективы специалистов. В обязанности АБД входит:

  1. анализ предметной области, статуса информации и пользователей;
  2. проектирование структуры и модификация данных;
  3. задание и обеспечение целостности;
  4. защита данных;
  5. обеспечение восстановления БД;
  6. сбор и статистическая обработка обращений к БД, анализ эффективности функционирования БД;
  7. работа с пользователем.

Краткие итоги

Базы данных (БД) - это именованная совокупность данных, отображающая состояние объектов и их отношения в рассматриваемой предметной области.

Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Основные требования, предъявляемые к банкам данных: многократное использование данных, простота, легкость использования, гибкость использования, быстрая обработка запросов на данные, язык взаимодействия.

Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи; администраторы баз данных.

Вопросы для самопроверки

  • Дайте определение базы данных.
  • Дайте определение банка данных.
  • Назовите две трактовки банка данных.
  • Что такое система управления базой данных?
  • Основные требования, предъявляемые к банку данных.
  • Что такое данные, информация, знания?
  • Пользователи СУБД и БД?
  • Основные функции администратора БД.
  • Что обеспечивает возможность быстрой и дешевой разработки новых приложений?

Урок " Основные понятия БД "

Любой из нас, начиная с раннего детства, многократно сталкивался с «базами данных». Это - всевозможные спра­вочники (например, телефонный), энциклопедии и т. п. За­писная книжка - это тоже «база данных», которая есть у каждого из нас.

Базы данных представляют собой информационные модели, содержащие данные об объектах и их свойствах. Базы данных хранят информацию о группах объектов с одинаковым набором свойств.

Например, база данных «Записная книжка» хранит информацию о людях, каждый из которых имеет фамилию, имя, телефон и так далее. Библиотечный каталог хранит информацию о книгах, каждая из которых имеет название, автора, год издания и так далее.

Информация в базах данных хранится в упорядоченном виде. Так, в записной книжке все записи упорядочены по - алфавиту, а в библиотечном каталоге - либо по алфавиту – алфавитный каталог), либо по области знания (предметный каталог).

Существует несколько различных структур информационных моделей и соответственно различных типов баз данных: табличная, сетевая, иерархическая (см. модели).

Иерархические базы данных

Иерархические базы данных графически могут быть представлены как перевернутое дерево, состоящее из объектов различных уровней. Верхний уровень (корень дерева ) занимает один объект, второй - объекты второго уровня и так далее.

Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объ­ект, более близкий к корню) к потомку (объект более низкого уровня), при этом объект-предок может не иметь потомков или иметь их несколько, тогда как объект-потомок обязательно имеет только одного предка. Объекты, имеющие общего предка, называются близнецами .

Например: иерархической базой данных является Каталог папок Windows , с которым можно работать, запустив Проводник. Верхний уровень занимает папка Рабочий стол. На втором уровне находятся папки Мой компьютер, Мои документы, Сетевое окружение и Корзина, которые являются потомками папки Рабочий стол, а между собой является близнецами. В свою очередь, папка Мой компьютер является предком по отношению к папкам третьего уровня - папкам дисков (Диск 3,5(А:), (С:), ( D :), (E :), (F :)) и системным папкам (Принтеры, Панель управления и др.)

Сетевые базы данных

Сетевая база данных является обобщением иерархической за счет допущения объектов, имеющих более одного предка. Вообще, на связи между объектами в сетевых моделях не накладывается никаких ограничений.

Сетевой базой данных фактически является Всемирная пау mu н a глобальной компьютерной сети Интернет. Гиперссылки связывают между собой сотни миллионов документов в единую распределенную сетевую базу данных.

Табличные базы данных

Табличная база данных содержит перечень объектов одного типа, то есть объектов, имеющих одинаковый набор свойств. Такую базу данных удобно представлять в виде двумерной таблицы: в каждой ее строке последовательно размещаются значения свойств одного из объектов; каждое значение свойства - в своем столбце, озаглавленном именем свойства.

Рассмотрим, например, базу данных: Телефонный справочник

Фамилия

Адрес

Телефон

Иванов В.В.

Серова, 5 12

4325345

Петров И.И.

Седова, 3-21

3454365

Сидоров С.С.

Мира, 33-17

3454354

Столбцы такой таблицы называют полями; каждое поле характеризуется своим именем (именем соответствующего свойства) и типом данных, представляющих значения данного свойства.

Строки таблицы являются записями об объекте; эти записи разбиты на поля столбцами таблицы, поэтому каждая запись представляет собой набор значений, содержащихся в полях .

Каждая таблица должна содержать, по крайней мере, одно ключевое поле, содержимое которого уникально для каждой записи в этой таблице. Ключевое поле позволяет однозначно идентифицировать каждую запись в таблице.

В качестве ключевого моля чаще всего используют поле, содержащее тип данных счетчик . Однако иногда удобнее в качестве ключевого поля таблицы использовать другие поля: код товара, инвентарный номер и т. п.

Телефонный справочник

Имена полей

Фамилия

Адрес

Телефон

Запись

Иванов В.В.

Серова, 5 12

4325345

Запись

Петров И.И.

Седова, 3-21

3454365

Запись

Сидоров С.С.

Мира, 33-17

3454354

Ключевое

поле

Поле

Поле

Поле

Тип поля определяется типом данных, которые оно содер жит. Поля могут содержать данные следующих основных типов:

    счетчик - целые числа, которые задаются автоматиче ски при вводе записей. Эти числа не могут быть изменены пользователем;

    текстовый - тексты, содержащие до 255 символов;

    числовой - числа;

    дата/время - дата или время;

    денежный - числа в денежном формате;

    логический - значения Истина (Да) или Ложь (Нет);

    поле объекта OLE - изображение или рисунок

Поле каждого типа имеет свой набор свойств. Наиболее в ажными свойствами полей являются:

    размер поля - определяет максимальную длину тексто вого или числового поля;

    формат поля - устанавливает формат данных;

    обязательное поле - указывает на то, что данное поле обязательно надо заполнить

Система управления базами данных Access (СУБД)

Назначение и основные функции

Развитие информационных технологий привело к созданию компьютерных баз данных. Создание баз данных, а также операции поиска и сортировки данных выполняются специальными программами - системами управления базами данных (СУБД).

Таким образом, необходимо различать собственно базы данных (БД), которые являются упорядоченными наборами данных, и системы управления базами данных - программы, управляющие хранением и обработкой данных.

Системой управления базами данных является приложение Access , входящее в Microsoft Office .

Интерфейс программы Access

В Access используется стандартный для среды Windows & Office многооконный интерфейс, но в отличие от других приложений, не многодокументный. Единовременно может быть открыта только одна база данных , содержащая обязательное окно базы данных и окна для работы с объектами базы данных. В каждый момент времени одно из окон является активным и в нем курсором отмечается активный объект.

Окно базы данных - один из главных элементов интерфейса Access . Здесь систематизированы все объекты БД: таблицы, запросы, формы, отчеты, макросы и модули.

Перемещение между записями можно осуществлять с помощью мыши, клавиш управления курсором или полосы прокрутки. Для быстрого перемещения между записями в базе данных можно использовать кнопки перемещения на панели Запись, которая находится в нижней части окна таблицы.

Объект ы в СУБД Access :

· Таблица. В базах данных вся информация хранится в двумерных таблицах. Это базовый объект БД, все остальные объекты создаются на основе существующих таблиц (производные объекты).

· Запросы. Запросы предназначены для отбора данных на основании заданных условий. С помощью запроса из базы данных можно выбрать информацию, удовлетворяющую определенным условиям.

· Формы. Формы позволяют отображать данные, содержащиеся в таблицах или запросах, в более удобном для восприятия виде. При помощи форм можно добавлять в таблицы новые данные, а также редактировать или удалять существующие. Форма может содержать рисунки, графики и другие внедренные объекты.

· Отчеты. Отчеты предназначены для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде.

· Макросы. Макросы служат для автоматизации повторяющихся операций. Запись макроса производится так же, как в других приложениях, например как в приложении Word .

· Модули. Модули также служат для автоматизации работы с БД. Модули еще называют процедурами обработки событий и пишутся на языке VBA .

Введение

Системы баз данных сегодня являются основой построения большинства информационных систем и используются при автоматизации практически всех сфер человеческой деятельности. Например, доступ к базе данных необходим при работе с библиотечной информационной системой, содержащей сведения обо всех книгах, имеющихся в библиотеке, ее читателях, заявках на бронирование книг и т.д. В ней обычно содержатся средства, позволяющие читателям находить нужную им книгу по названию, фамилиям авторов или указанной тематике. С помощью такого рода систем организуется учет движения книг, другие операции, необходимые в библиотечной деятельности.

В ВУЗе могут существовать базы данных с информацией о студентах, профессорско-преподавательском составе, факультетах и кафедрах, др. данные, необходимые для функционирования так называемых комплексных информационно-аналитических систем и их подсистем (учета кадров, бухгалтерской, документооборота, информационного обеспечения учебной деятельности и т.п.).

Базы данных по народонаселению содержат сведения о жителях города, региона и т.п., необходимые для функционирования систем налогообложения, здравоохранения, образования, социальной защиты, др.

1. Основные понятия баз данных

Банк данных - это автоматизированная система, пред­ставляющая совокупность информационных, программных, техниче­ских средств и персонала, обеспечивающих хранение, накопление, об­новление, поиск и выдачу данных. Главными составляющими банка данных являются база данных и программный продукт, называе­мый системой управления базой данных (СУБД).

База данных - это специальным образом организованное хра­нение информационных ресурсов в виде интегрированной совокупности файлов, обеспечивающей удобное взаимодействие между ними и быст­рый доступ к данным.

База данных - это динамичный объект, меняющий значения при изменении состояния отражаемой предметной области (внешних условий по отношению к базе). Под предметной обла­стью понимается часть реального мира (объектов, процессов), ко­торая должна быть адекватно, в полном информационном объеме представлена в базе данных. Данные в базе организуются в единую целостную систему что обеспечивает более производительную ра­боту пользователей с большими объемами данных.

Система управления базой данных (СУБД) – это программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также осуществлять к ней контролируемый доступ. СУБД взаимодействует с прикладными программами пользователя и базой данных и обладает приведенными ниже возможностями:

· Позволяет определять базу данных, что обычно осуществляется с помощью языка определения данных (DDL - Data Definition Language). Язык DDL предоставляет пользователям средства указания типа данных и их структуры, а также средства задания ограничений для информации, хранимой в базе данных.

· Позволяет вставлять, обновлять, удалять и извлекать информацию из базы данных, что обычно осуществляется с помощью языка управления данными (DML - Data Manipulation Language). Наличие централизованного хранилища всех данных и их описаний позволяет использовать язык DML как общий инструмент организации запросов, который иногда называют языком запросов.

· Предоставляет контролируемый доступ к базе данных с помощью: системы обеспечения безопасности, предотвращающей несанкционированный доступ к базе данных со стороны пользователей; системы поддержки целостности данных, обеспечивающей непротиворечивое состояние хранимых данных; системы управления параллельной работой приложений, контролирующей процессы их совместного доступа к базе данных; системы восстановления, позволяющей восстановить базу данных до предыдущего непротиворечивого состояния, нарушенного в результате сбоя аппаратного или программного обеспечения; доступного пользователям каталога, содержащего описание хранимой в базе данных информации.

Кроме важнейших составляющих базы данных и СУБД, банк данных включает и ряд других составляющих. Остановимся на их рассмотрении.

Языковые средства включают языки программирования, языки запросов и ответов, языки описания данных.

Методические средства - это инструкции и рекомендации по созданию и функционированию банка данных, выбору СУБД.

Технической основой банка данных является ЭВМ, удовлетворяющая оп­ределенным требованиям по своим техническим характеристикам.

Обслуживающий персонал включает программистов, инженеров по техническому обслуживанию ЭВМ, административный аппарат, в том числе администратора базы данных. Их задача - контроль за работой банка данных, обеспечение совместимости и взаимодействия всех состав­ляющих, а также управление функционированием банка данных, контроль за качеством информации и удовлетворение информационных по­требностей. В минимальном варианте все эти функции для пользо­вателя могут обеспечиваться одним лицом или выполняться орга­низацией, поставляющей программные средства и выполняющей их поддержку и сопровождение.

Особую роль играет администратор базы или банка данных. Администратор управляет данными, персоналом, обслужи­вающим банк данных. Важной задачей администратора базы данных является защита данных от разрушения, несанкционированного и некомпетентного доступа. Администратор предоставляет пользователям большие или меньшие полномочия на доступ ко всей или части базы. Для вы­полнения функций администратора в СУБД предусмотрены раз­личные служебные программы. Администрирование базой данных предусматривает выполнение функций обеспечения надежной и эффективной работы базы данных, удовлетворение информационных по­требностей пользователей, отображение в базе данных динамики предметной области.

Главными пользователями баз и банков данных являются ко­нечные пользователи , т.е. специалисты, ведущие различные участки экономической работы. Их состав неоднороден, они различаются по квалификации, степени профессионализма, уровню в системе управления: главный бухгалтер, бухгалтер, операционист, началь­ник кредитного отдела и т.д. Удовлетворение их информационных потребностей - это решение большого числа проблем в организа­ции внутримашинного информационного обеспечения.

Специальную группу пользователей банка данных образуют прикладные программисты. Обычно они играют роль посредников между базой данных и конечными пользователями, так как создают удобные пользовательские программы на языках СУБД. Централизованный характер управления данными вызывает необходимость администрирования такой сложной системы, как банк данных.

Преимущества работы с банком данных для пользователя окупают затраты и издержки на его создание, так как:

Повышается производительность работы пользователей, дос­тигается эффективное удовлетворение их информационных потребностей;

Централизованное управление данными освобождает при­кладных программистов от организации данных, обеспечива­ет независимость прикладных программ от данных;

Развитая организация базы данных позволяет выполнять разнообраз­ные нерегламентированные запросы, новые приложения;

Снижаются затраты не только на создание и хранение дан­ных, но и на их поддержание в актуальном и динамичном со­стоянии; уменьшаются потоки данных, циркулирующих в системе, сокращается их избыточность и дублирование.

Как банк данных, так и база данных могут быть сосредоточены на одном компьютере или распределены между несколькими ком­пьютерами. Для того чтобы данные одного исполнителя были дос­тупны другим и наоборот, эти компьютеры должны быть соедине­ны в единую вычислительную систему с помощью вычислительных сетей.

Банк и база данных, расположенные на одном компьютере, на­зываются локальными, а на нескольких соединенных сетями ПЭВМ называются распределенными. Распределенные банки и базы данных более гибки и адаптивны, менее чувствительны к выходу из строя оборудования.

Назначение локальных баз и банков данных организации бо­лее простого и дешевого способа информационного обслуживания пользователей при работе с небольшими объемами данных и ре­шении несложных задач.

Локальные базы данных эффективны при работе одного или нескольких пользователей, когда имеется возможность согласова­ния их деятельности административным путем. Такие системы просты и надежны за счет своей локальности и организационной независимости.

Назначение распределенных баз и банков данных состоит в предоставлении более гибких форм обслуживания множеству удаленных пользователей при работе со значительными объемами ин­формации в условиях географической или структурной разобщен­ности. Распределенные системы баз и банков данных обеспечивают широкие возможности по управлению сложных многоуровне­вых и многозвенных объектов и процессов.

Распределенная обработка данных позволяет разместить базу данных (или несколько баз) в различных узлах компьютерной сети. Таким образом, каждый компонент базы данных располагается по месту наличия техники и ее обработки. Например, при организа­ции сети филиалов какой-либо организационной структуры удобно обрабатывать данные в месте расположения филиала. Распределе­ние данных осуществляется по разным компьютерам в условиях реализации вертикальных и горизонтальных связей для организа­ций со сложной структурой.

Объективная необходимость распределенной формы организа­ции данных обусловлена требованиями, предъявляемыми конеч­ными пользователями:

Централизованное управление рассредоточенными информа­ционными ресурсами;

Повышение эффективности управления базами и банками данных и уменьшение времени доступа к информации;

Поддержка целостности, непротиворечивости и защиты дан­ных;

Обеспечение приемлемого уровня в соотношении «цена - производительность - надежность».

Распределенная система баз данных (или частей базы) позволя­ет в широких возможностях варьировать и поддерживать инфор­мационные ресурсы, избегая узких мест, сдерживающих произво­дительность пользователя, и добиваться максимальной эффектив­ности использования информационных ресурсов.

2. Функции СУБД

В этом разделе мы рассмотрим типы функций и служб (сервисов), которые должна обеспечивать типичная СУБД.

Хранение, извлечение и обновление данных. СУБД должна предоставлять пользователям возможность сохранять, извлекать и обновлять данные в базе данных. Это самая фундаментальная функция СУБД. Из предыдущего ясно, что способ реализации этой функции в СУБД должен позволять скрывать от конечного пользователя внутренние детали физической реализации системы (например, файловую организацию или используемые структуры хранения).

Каталог, доступный конечным пользователям. СУБД должна иметь доступный конечным пользователям каталог, в котором хранится описание элементов данных. Ключевой особенностью архитектуры ANSI-SPARC является наличие интегрированного системного каталога с данными о схемах, пользователях, приложениях и т.д. Предполагается, что каталог доступен как пользователям, так и функциям СУБД. Системный каталог, или словарь данных, является хранилищем информации, описывающей данные в базе данных (по сути, это - метаданные). В зависимости от типа используемой СУБД количество информации и способ ее применения могут варьироваться. Обычно в системном каталоге хранятся следующие сведения:

· имена, типы и размеры элементов данных;

· имена связей;

· накладываемые на данные ограничения поддержки целостности;

· имена санкционированных пользователей, которым предоставлено право доступа к данным;

· внешняя, концептуальная и внутренняя схемы и отображения между ними;

· статистические данные, например частота транзакций и счетчики обращений к объектам базы данных.

Системный каталог позволяет достичь определенных преимуществ, перечисленных ниже.

· Информация о данных может быть централизованно собрана и сохранена, что позволит контролировать доступ к этим данным, как и к любому другому ресурсу.

· Можно определить смысл данных, что поможет другим пользователям понять их предназначение.

· Упрощается сообщение, так как сохраняются точные определения смысла данных. В системном каталоге также могут быть указаны один или несколько пользователей, которые являются владельцами данных или обладают правом доступа к ним.

· Благодаря централизованному хранению избыточность и противоречивость описания отдельных элементов данных могут быть легко обнаружены.

· Внесенные в базу данных изменения могут быть запротоколированы.

· Последствия любых изменений могут быть определены еще до их внесения, поскольку в системном каталоге зафиксированы все существующие элементы данных, установленные между ними связи, а также все их пользователи.

· Меры обеспечения безопасности могут быть дополнительно усилены.

· Появляются новые возможности организации поддержки целостности данных.

· Может выполняться аудит сохраняемой информации.

Поддержка транзакций. СУБД должна иметь механизм, который гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них. Транзакция представляет собой набор действий, выполняемых отдельным пользователем или прикладной программой с целью доступа или изменения содержимого базы данных. Примерами простых транзакций может служить добавление в базу данных, удаление из нее или обновление сведений о том или ином объекте. Если во время выполнения транзакции произойдет сбой, база данных попадает в противоречивое состояние, поскольку некоторые изменения уже будут внесены, а остальные - еще нет. Поэтому все частичные изменения должны быть отменены для возвращения базы данных в прежнее, непротиворечивое состояние.

Сервисы управления параллельностью. СУБД должна иметь механизм, который гарантирует корректное обновление базы данных при параллельном выполнении операций обновления многими пользователями. При этом параллельный доступ сравнительно просто организовать, если все пользователи выполняют только чтение данных, поскольку в этом случае они не могут помешать друг другу. Однако, когда несколько пользователей одновременно получают доступ к БД, конфликт с нежелательными последствиями легко может возникнуть, например, если хотя бы один из них попытается обновить данные.

СУБД должна гарантировать, что при одновременном доступе к базе данных многих пользователей подобных конфликтов не произойдет.

Сервисы восстановления. При обсуждении поддержки транзакций упоминалось, что при сбое транзакции база данных должна быть возвращена в непротиворечивое состояние, что должно гарантироваться возможностями СУБД.

Сервисы контроля доступа к данным. СУБД должна иметь механизм, гарантирующий возможность доступа к базе данных только санкционированных пользователей. Термин "безопасность" относится к защите базы данных от преднамеренного или случайного несанкционированного доступа. Предполагается, что СУБД обеспечивает механизмы подобной защиты данных.

Поддержка обмена данными. СУБД должна обладать способностью к интеграции с коммуникационным программным обеспечением с целью организации доступа удаленных пользователей к централизованной БД (в рамках системы распределенной обработки).

Службы поддержки целостности данных. СУБД должна обладать инструментами контроля за тем, чтобы данные и их изменения соответствовали заданным правилам.

Целостность базы данных означает корректность и непротиворечивость хранимых данных и выражается в виде ограничений или правил сохранения непротиворечивости данных, которые не должны нарушаться в базе.

Службы поддержки независимости от данных. СУБД должна обладать инструментами поддержки независимости программ от структуры базы данных.

Понятие независимости от данных уже рассматривалось выше. Обычно она достигается за счет реализации механизма поддержки представлений или подсхем. Физическая независимость от данных достигается довольно просто, так как обычно имеется несколько типов допустимых изменений физических характеристик базы данных, которые никак не влияют на представления. Однако добиться полной логической независимости от данных сложнее. Как правило, система легко адаптируется к добавлению нового объекта, атрибута или связи, но не к их удалению. В некоторых системах вообще запрещается вносить любые изменения в уже существующие компоненты логической схемы.

Вспомогательные службы. СУБД должна предоставлять некоторый набор различных вспомогательных служб. Вспомогательные утилиты обычно предназначены для оказания помощи АБД в эффективном администрировании базы данных. Одни утилиты работают на внешнем уровне, а потому они, в принципе, могут быть созданы самим АБД, тогда как другие функционируют на внутреннем уровне системы и потому должны быть предоставлены самим разработчиком СУБД. Ниже приводятся некоторые примеры подобных утилит.

· Утилиты импортирования, предназначенные для загрузки базы данных из плоских файлов, а также утилиты экспортирования, которые служат для выгрузки базы данных в плоские файлы.

· Средства мониторинга, предназначенные для отслеживания характеристик функционирования и использования базы данных.

· Программы статистического анализа, позволяющие оценить производительность или степень использования базы данных.

· Инструменты реорганизации индексов, предназначенные для перестройки индексов и обработки случаев их переполнения.

· Инструменты сборки мусора и перераспределения памяти для физического устранения удаленных записей с запоминающих устройств, объединения освобожденного пространства и перераспределения памяти в случае необходимости.

3. Архитектура СУБД

В данном разделе рассмотрим различные типовые архитектурные решения, используемые при реализации многопользовательских СУБД, а именно: с телеобработкой, файл-серверными и клиент-серверными системами.

Телеобработка. Традиционной архитектурой многопользовательских систем раньше считалась схема, получившая название "телеобработки", при которой один компьютер был соединен с несколькими "неинтеллектуальными" терминалами так, как показано на рис. 1. С терминалов посылались сообщения пользовательским приложениям, в свою очередь, приложения обращались к необходимым службам СУБД. Таким же образом сообщения возвращались назад на пользовательский терминал. При такой архитектуре вся нагрузка возлагалась на центральный компьютер, который должен был выполнять не только действия прикладных программ и СУБД, но и значительную работу по обслуживанию терминалов (например, форматирование данных, выводимых на экраны терминалов).

В настоящее время в связи с развитием информационно-вычислительных сетей получили широкое распространение файл-серверные и клиент-серверные СУБД.

Рис 1. Топология архитектуры телеобработки

Файл - серверные системы. Системы данного типа функционируют в рамках локальных вычислительных сетей (ЛВС), управляемых ОС соответствующего типа. При этом файловый сервер содержит файлы, необходимые для работы приложений и самой СУБД. Однако пользовательские приложения и сама СУБД размещены и функционируют на отдельных рабочих станциях, и обращаются к файловому серверу только по мере необходимости получения доступа к нужным им файлами - как показано на рис. 2. Таким образом, файловый сервер функционирует просто как совместно используемый жесткий диск.

Рис 2. Архитектура с использованием файлового сервера

Очевидно, что архитектура с использованием файлового сервера обладает следующими основными недостатками:

· Большой объем сетевого трафика.

· На каждой рабочей станции должна находиться полная копия СУБД.

· Управление параллельностью, восстановлением и целостностью усложняется, поскольку доступ к одним и тем же файлам могут осуществлять сразу несколько экземпляров СУБД.

Клиент-серверные системы. При данном подходе предполагается существование клиентского процесса, требующего определенных ресурсов, а также серверного процесса, который эти ресурсы предоставляет. При этом совсем необязательно, чтобы они находились на одном и том же компьютере. На практике системы данного типа реализуются в рамках информационно-вычислительных сетей (не обязательно ЛВС) под управлением клиент-серверных ОС (см. рис. 3).

В контексте базы данных клиентская часть управляет пользовательским интерфейсом и логикой приложения, действуя как интеллектуальная рабочая станция, на которой выполняются приложения баз данных. Клиент принимает от пользователя запрос, проверяет синтаксис и генерирует запрос к базе данных на SQL или другом языке БД, который соответствует логике приложения. Затем он передает сообщение серверу, ожидает поступления ответа и форматирует полученные данные для представления их пользователю. Сервер принимает и обрабатывает запросы к базе данных, а затем передает полученные результаты обратно клиенту. Такая обработка включает проверку полномочий клиента, обеспечение требований целостности, поддержку системного каталога, а также выполнение запроса и обновление данных. Помимо этого, поддерживается управление параллельностью и восстановлением. Выполняемые клиентом и сервером операции приведены ниже.

Рис 3. Общая схема построения систем с архитектурой "клиент/сервер"

Клиент:

· Управляет пользовательским интерфейсом;

· Принимает и проверяет синтаксис введенного пользователем запроса;

· Выполняет приложение;

· Генерирует запрос к базе данных и передает его серверу;

· Отображает полученные данные пользователю.

Сервер:

· Принимает и обрабатывает запросы к базе данных со стороны клиентов;

· Проверяет полномочия пользователей;

· Гарантирует соблюдение ограничений целостности;

· Выполняет запросы/обновления и возвращает результаты клиенту;

· Поддерживает системный каталог;

· Обеспечивает параллельный доступ к базе данных;

· Обеспечивает управление восстановлением.

Этот тип архитектуры обладает приведенными ниже преимуществами.

· Обеспечивается более широкий доступ к существующим базам данных.

· Повышается общая производительность системы. Поскольку клиенты и сервер находятся на разных компьютерах, их процессоры способны выполнять приложения параллельно.

· Стоимость аппаратного обеспечения снижается. Достаточно мощный компьютер с большим устройством хранения нужен только серверу - для хранения и управления базой данных.

· Сокращаются коммуникационные расходы. Приложения выполняют часть операций на клиентских компьютерах и посылают через сеть только запросы к базе данных, что позволяет существенно сократить объем пересылаемых по сети данных.

· Повышается уровень непротиворечивости данных. Сервер может самостоятельно управлять проверкой целостности данных, поскольку все ограничения определяются и проверяются только в одном месте.

· Эта архитектура хорошо согласуется с архитектурой открытых систем.

· Данная архитектура может быть использована для организации средств работы с распределенными базами данных, т.е. с набором нескольких баз данных, логически связанных и распределенных в компьютерной сети.

Необходимо заметить, что в настоящее время данная архитектура рассматривается обычно в трехуровневом варианте, при котором функциональная часть прежнего, толстого (интеллектуального) клиента разделяется на две части. В трехуровневой архитектуре тонкий (неинтеллектуальный) клиент на рабочей станции управляет только пользовательским интерфейсом, тогда как средний уровень обработки данных управляет всей остальной логикой приложения. Третьим уровнем здесь является сepвep базы данных. Эта трехуровневая архитектура оказалась более подходящей для некоторых сред - например, для сетей Internet и intranet, где в качестве клиента может использоваться обычный Web-броузер.

Заключение

Таким образом, база данных – организованная структура, предназначенная для хранения информации. С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержимым, редактирования содержимого и визуализации информации. Банк данных является разновидностью информационной системы, в которой реализованы функции централизованного хранения и накопления обрабатываемой информации. Главными составляющими банка данных являются база данных и системы управления базами данных.

Основными пользователями баз и банков данных являются специалисты, ведущие различные участки экономической работы. Их состав неоднороден, они различаются по квалификации, степени профессионализма, уровню в системе управления: главный бухгалтер, бухгалтер, операционист, началь­ник кредитного отдела и т.д. Удовлетворение их информационных потребностей - это решение большого числа проблем в организа­ции внутримашинного информационного обеспечения.

В данной работе рассмотрены функции, которые должна обеспечивать типичная СУБД, а также различные типовые архитектурные решения, используемые при реализации многопользовательских СУБД, а именно: с телеобработкой, файл-серверными и клиент-серверными системами.

Список литературы

1. http://cit.vvsu.ru/portal/cifr/1/lek19.htm

2. http://do.bti.secna.ru/lib/book_it/istor_razv.html

3. http://do.bti.secna.ru/lib/book_it/ogr_file.html

4. http://www.lib.csu.ru/dl/bases/prg/kompress/articles/2000_05_dbms3/

5. Microsoft Access 2000: справочник /под ред. Ю. Колесникова. – СПб.: Питер, 2001.

6. Автоматизированные информационные технологии в экономике /под ред. проф. Г.А. Титоренко. – М.: ЮНИТИ, 2005. – 399с.

7. Информатика для юристов и экономистов /под ред. С.В. Симоновича. – СПб.: Питер, 2005. – 688с.

9. Леонтьев В.П. Новейшая энциклопедия персонального компьютера 2005. – М.:ОЛМА-ПРЕСС Образование, 2005. – 800с.

10. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных/ под ред. проф. А.Д. Хомоненко. – СПб.: КОРОНА, 2000. – 416с.

11. Экономическая информатика и вычислительная техника./ Под ред. В.П. Косарева. М.: Финансы и статистика, 2005. –592с.



Рекомендуем почитать

Наверх