Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Разработка реляционной базы данных «Библиотека»

Тип Курсовая
Предмет Базы данных и экспертные системы

ID (номер) заказа
3426940

500 руб.

Просмотров
1366
Размер файла
792.74 Кб
Поделиться

Ознакомительный фрагмент работы:

ВведениеБиблиотека представляет собой учреждение, содержащее интеллектуальные ценности общества и обеспечивающая использование этих ценностей для целей образования, научных исследований и культурного развития личности. Библиотека играет важную роль в учебно-воспитательной и научно – исследовательской работе высшего учебного заведения. Как и любая другая организация, библиотека нуждается в своевременном доступе к информации. Ценность информации в современном мире очень высока. Роль распорядителей информации в современном мире чаще всего выполняют базы данных. Базы данных обеспечивают надежное хранение информации, в структурированном виде и своевременный доступ к ней. Практически любая современная организация нуждается в базе данных, удовлетворяющей те или иные потребности по хранению, управлению и администрированию данных.Темой курсовой работы является разработка реляционной базы данных «Библиотека».Актуальность темы курсовой работы заключается в том, что во многих библиотеках до сих пор придерживаются, традиционных библиотечных систем и процессов. Необходим, переход от бумажной документации процессов к внедрению информационных систем, чтоб сократить время поиска необходимой литературы, информации о читателе и т.д.Целью курсовой работы является разработка реляционной базы данных «Библиотека». Основные задачи курсовой работы:исследовать деятельность библиотеки;выбрать систему управления базами;разработать логическую и физическую модели данных;сформировать запросы к БД.1. Инфологическое проектирование1.1. Анализ предметной областиБиблиотека — это учреждение, которое организует сбор, хранение и общественное пользование книгами и периодическими изданиями, находящимися в собственности библиотеки. Библиотеки систематически занимаются сбором, хранением, пропагандой и выдачей читателям произведений печати, а также информационно-библиографической работой, являются общедоступным источником знаний и основной базой для самообразования [1, 3].Основные направления деятельности библиотеки представлены на рисунке 1.1 [2].Рисунок 1.1 - Основные направления деятельности библиотекиБиблиотечная деятельность связана с учетом большого количества операций, множество книг и читателей серьезно замедляют работу библиотекарей. Сложность поиска нужной книги в каталоге занимает длительное время, и целиком опирается на компетентность работников библиотеки [3].В библиотеке ведется картотека читателей. Для ведения библиотечных каталогов, организации поиска требуемых изданий и библиотечной статистики в базе должны храниться сведения, большая часть которых размещаются в аннотированных каталожных карточкахВ библиотеку приходит много книг из различных издательств. Каждой книге в библиотеке присваивают номер, а затем передают в различные отделы. При поступлении книги, учитывают такие данные как: · номер поступившей книги, название книги, название издательства, из которого поступила книга, отдел, куда была передана книга.Предусматривается автоматизация учета выдачи и сдачи книг, записи новых книг и читателей, а также хранения информации об имеющихся в наличии книгах, данные о сотрудниках библиотеки, сотрудниках хранилища библиотеки и читателях.Каждая книга, хранящаяся в библиотеке, имеет следующие параметры:автор, издание, год издания, жанр, ключевые слова, количество страниц.Каждая книга может присутствовать в нескольких экземплярах.Так же в библиотеке ведется картотека читателей. О каждом читателе заносятся следующие сведения: ФИО, номер паспорта, адрес, телефон.Каждому читателю присваивается номер читательского билета.В случае выдачи экземпляра книги в библиотеке остается вкладыш, в котором указана дата выдачи, дата предполагаемого возврата и номер читательского билета.При возврате книги во вкладыше отмечается срок возврата. При просрочке возврата книги, читатель получает предупреждение. Когда предупреждений у читателя накапливается больше определенного предела, он лишается правом пользования библиотекой на определенный срок.При потере книги читатель лишается правом пользования библиотекой на определенный срок, независимо от количества предупреждений.В библиотеке есть ряд ограничений: нельзя выдавать книги больше установленного периода, нельзя выдавать больше определенного количества книг.Все книги различаются по своему уникальному шифру – ISBN [1].Библиотечно-библиографическая классификация (ББК) распределяет издания по отраслям знания в соответствии с их содержанием. В ней используется цифробуквенные индексы ступенчатой структуры (например, ББК 32.973 Электронные вычислительные машины и устройства). Шифр ББК используется при выделении хранимым изданиям определенных комнат, стеллажей и полок, а также для составления каталогов и статистических отчетов [3].Вести учет выданных книг читателям, при этом предполагается два режима работы: выдача книг читателю и прием от него возвращаемых им книг обратно в библиотеку. При выдаче книг фиксируется, когда и какая книга была выдана данному читателю и на какой срок выдается данная книга. При приеме книги, возвращаемой читателем, проверяется соответствие возвращаемого инвентарного номера книги выданному инвентарному номеру, название книги, и она ставится на свое старое место в библиотеке.Администрация библиотеки должна иметь возможность получать сведения о должниках - читателях библиотеки, которые не вернули вовремя взятые книги; сведения о наиболее популярных книгах, т.е. наиболее часто выдаваемых книгах.В Российской Федерации существует несколько законов, регулирующих и контролирующих деятельность библиотек, обеспечивающих создание правовой базы для формирования открытого информационного общества. Актуальной задачей российских библиотечных работников является реализация в полном объеме федеральных законов «О библиотечном деле» [1], «Об информации, информатизации и о защите информации» [2], «Об участии в информационном обмене» [3]. Задача библиотечного сообщества - использовать их в полной мере и защищать право каждого человека в России на свободное получение нужной ему информации.Основные законы, регламентирующие деятельность библиотеки представлены на рисунке 1.2.Основная форма документооборота библиотеки – бумажные учетно-инвентарные карточки – как читателей, так и книг. В любой области документооборот, который ведется на бумажных носителях, имеет следующие недостатки: возможна порча документов, их утеря, неудобство хранения. Именно поэтому на смену хранению информации на бумажных носителях пришел электронных документооборот. Электронный документ обеспечивает быстрый ввод информации в базу данных, легкий поиск по заданным критериям, удаление и корректировка записей, вывод на печать и получение отчетности [3].Рисунок 1.2 - Основные законы, регламентирующие деятельность библиотекиАвтоматизация работы библиотеки позволит работникам библиотечной сферы избавиться от многих рутинных процессов, что обеспечило наиболее быстрое, полное и качественное обслуживание пользователей информацией, потоки которой с каждым годом (в настоящее время с каждым часом) увеличивается. 1.2. Анализ информационных задач и пользователей системыВ БД должны храниться сведения об имеющихся в библиотеки книгах, о читателях библиотеки и читальных залах. Для каждой книги в БД должны храниться сведения об авторах, названии годе издания и числе экземпляров, имеющихся в каждом зале библиотеки, а также шифр книги и дата закрепления ее за читателем. Сведения о читателях библиотеки должны включать фамилию, номер телефона и уникальный номер читательского билета. Читатели закрепляются за определенным залом и могут записываться в библиотеку и выписываться из нее. Библиотека имеет несколько читальных залов, которые характеризуются номером, названием и вместимостью. Библиотека может получать новые и списывать старые книги. Шифр книги может изменяться в результате переклассификации.Библиотекарь может вносить следующие изменения:записывать нового читателя в библиотеку;списывать старые книги;изменять шифр книги;закреплять книгу за читателем.Программа должна формировать следующие отчеты:справку о наличии книг в библиотеке;список книг;статистика активности читателей.На основе проведенного анализа предметной области были выделены следующие сущности [4, 5]:книги – хранение сведений о книгах, которые есть в библиотеке;читатели – хранение сведений о читателях;читальные залы – хранение сведений о читальных залах;классификация – классификация книг;выдача книг – сведения о выдаче книг читателям на руки;запись в читальный зал – запись читателей в читальный зал;списание книг – сведения о списанных книгах;книги в залах - сведения о книгах в читальных залах.пользователи – сведения о пользователях, которые могут иметь доступ к данным о деятельности библиотеки.1.3. Выявление реквизитов сущностейВ таблице 1.1 представлен список атрибутов каждой выделенной сущности.Таблица 1.1 – Перечень атрибутов выделенных сущностейСущностьАтрибутОписание123КнигаКод книгиУникальный код книгиНаименование Наименование книги АвторыАвторы книгиГод выходаГод печати книги ЧитательКод читателяУникальный код читателяФИОФИО читателяАдресАдрес читателяТелефонТелефон читателяНомер чит.билетаНомер чит.билета читателяЧитальные залыКод залаУникальный код залаНаименованиеНаименование залаНомерНомер залаВместимостьВместимость залаКлассификацияКод классификацииУникальный код классификацииКод книгиКод книгиШифрШифр книгиДата классификацииДата классификации книгиВыдача книгКод выдачиУникальный код поставкиКод читателяКод читателя, взявшего книгуДата выдачиДата выдачи книгиКод книгиКод книги, выданной на рукиДата возвратаДата возврата книгиЗапись в читальный залКод записиУникальный код спецификацииДата записиДата записи в читальный залКод читателяУникальный код читателяКод читального залаКод читального залаДата выпискиДата выписки из читального залаСписание книгКод списанияУникальный код списания Дата списанияДата списания книгиКод книгиКод списанной книгиКниги в залахКод учетаУникальный код учетаКод книгиУникальный код книгиКод читального залаУникальный код читального залаКоличествоКоличество книг в залеПользовательКод пользователяУникальный код пользователяЛогинЛогин пользователяПарольПароль пользователяБиблиотекарьПризнак роли «Библиотекарь»ЧитательПризнак роли «Читатель»На рисунке 1.3 представлена ER-диаграмма «сущность-связь» [5, 7].Рисунок 1.3 - ER-диаграмма «сущность-связь»Между выделенными сущностями созданы следующие связи:1:М – один читатель может взять много книг;1:М – один читатель может записываться в разные читальные залы;1:М – одному читателю может быть выдано много книг;1:1 – каждая книга может быть переклассифицирована несколько раз;1:1 – каждая книга может быть списана только один раз;1:M – каждая книга может быть размещена в разных залах.2. Физическое проектирование2.1. Выбор СУБД и других программных средств Для разработки базы данных для библиотекаря необходимо использовать СУБД, которая подходит для создания Windows-приложения. Рассмотрим наиболее популярные СУБД на данный момент [9,10]:MySQL;PostgreSQL;MS SQL Server.В таблице 2.1 представлена сравнительная характеристика выбранных СУБД.Таблица 2.1 - Сравнительная характеристика СУБДНа основе проведенного исследования СУБД, для разработки базы данных библиотекаря выбрана СУБД MS SQL Server.Основным критерием выбора СУБД послужила ее распространенность и наличие бесплатной версии Express. Если в дальнейшем будет необходимость интегрировать разрабатываемое приложение в какую-то систему или же экспортировать накопленную БД в стороннее приложение такой выбор СУБД представляется наиболее удачным, так как СУБД MS SQL Server имеет встроенные механизмы экспорта данных. 2.2. Составление реляционных отношенийПри переходе от концептуальной модели предметной области к схеме БД (например, реляционной) используются три различных подхода, которые подробно описаны в списке использованных источников [5].При первом подходе преобразование осуществляется вручную.Второй подход основан на автоматизированной компиляции концептуальной модели предметной области в схему БД, в результате которой создается реляционная база данных в третьей нормальной форме.В рамках курсового проекта будем использовать первый подход. При этом сущности модели «сущность-связь» соответствует отношение (таблица) реляционной БД. Связи между сущностями типа «один – к – одному (1:1)» и «один – ко – многим (1:М)» соответствуют связям между отношениями. Атрибуты, которые идентифицируют, определяют или моделируют сущности в модели «сущность-связь» соответствуют атрибутам отношений [5]. На рисунке 2.1 представлена схема функциональных связей.При разработке реляционной базы данных проанализированы функциональные зависимости между атрибутами всех отношений и выбраны идентифицирующие атрибуты, которые в реляционной модели данных используются в качестве первичных ключей: Код книги; Код читателя; Код читального зала; Код списания; Код выдачи; Код записи; Код книги в зале; Код классификации.КнигиЧитателиЧитальные залыСписаниеВыдача книгКод книгиЗапись в залКод залаКод читателяКниги в залахКлассификацияКод списанияКод выдачиКод записиКод книги в залеКод классиф.КнигиЧитателиЧитальные залыСписаниеВыдача книгКод книгиЗапись в залКод залаКод читателяКниги в залахКлассификацияКод списанияКод выдачиКод записиКод книги в залеКод классиф.КнигиЧитателиЧитальные залыСписаниеВыдача книгКод книгиЗапись в залКод залаКод читателяКниги в залахКлассификацияКод списанияКод выдачиКод записиКод книги в залеКод классиф.КнигиЧитателиЧитальные залыСписаниеВыдача книгКод книгиЗапись в залКод залаКод читателяКниги в залахКлассификацияКод списанияКод выдачиКод записиКод книги в залеКод классиф.Рисунок 2.1 - Схема функциональных связей2.3. Нормализация полученных отношенийИзначально разрабатываемая БД представляла собой логически не организованную структуру данных, представленную на рисунке 2.2.Наименование книгиАвторыГод выходаФИО читателяАдрес читателя Телефон читателя Номер читательского билета читателя Наименование читального залаНомер залаВместимостьШифр книгиДата классификацииДата выдачиДата возвратаДата записи в читального залаДата списания книгиРисунок 2.2 - Ненормализованная база данныхВсе рассматриваемые отношения в реляционном подходе находятся в 1НФ, которые предполагают, что элементы доменов отношений не является множествами (атомарными).1 НФ. На этом этапе выделены таблицы «Книги», «Читатели», «Читальные залы», «Выдача книг» (таблица 2.2). Таблица 2.2 - 1НФ базы данныхКнигиЧитателиЧитальные залыВыдача книгКод книгиКод читателяКод залаКод выдачиНаименование книгиФИО читателяНаименование читального залаДата выдачиАвторыАдрес читателя Номер залаКод книгиГод выходаТелефон читателя ВместимостьКод читателяШифр книгиНомер читательского билета читателяДата возвратаДата классификацииНомер читального залаДата списанияДата записи в читальный залОтношения находятся во 2НФ, если отношения находятся в 1НФ, и каждый не первичный атрибут формально полно зависит от каждого возможного ключа.2 НФ. Добавлена таблица «Списание», «Классификация» (таблица 2.3).Таблица 2.3 - 2НФ базы данныхКнигиЧитателиЧитальные залыВыдача книгСписаниеКлассификацияКод книгиКод читателяКод залаКод выдачиКод списанияКод классификацииНаименование книгиФИО читателяНаименование читального залаДата выдачиДата списанияДата классификацииАвторыАдрес читателя Номер залаКод книгиШифр книгиГод выходаТелефон читателя ВместимостьКод читателяНомер читательского билета читателяДата возвратаНомер читального залаДата записи в читальный залОтношения находятся в 3НФ, если оно находиться в 2НФ и в нем нет зависимости атрибутов от возможных ключей.3Н. На этом этапе выделено еще две таблицы «Книги в залах» и «Запись в зал» (таблица 2.4).Таблица 2.4 - 3НФ базы данныхКнигиЧитателиЧитальные залыВыдача книгСписаниеКлас-яКниги в залахЗапись в залКод книгиКод читателяКод залаКод выдачиКод списанияКод клас-иКод учетаКод записиНаимено-вание книгиФИО читателяНаимено-вание читального залаДата выдачиДата списанияДата клас-иКод книгиДата записиАвторыАдрес читателя Номер залаКод книгиШифр книгиКод залаКод залаГод выходаТелефон читателя ВместимостьКод читателяКол-воКод чит.залаНомер читате-льского билета читателяДата возвратаТаким образом, БД «Библиотека» приведена к 3НФ.На рисунке 2.3 представлена логическая модель базы данных, отражающая связи таблиц БД, разработанная с помощью ERWin.Рисунок 2.3 – Логическая модель базы данных2.4. Определение требований к операционной обстановкеВ базе данных создано 8 сущностей. Пять сущностей – основных. В них ожидается хранение как минимум 100 записей в день. Три сущности – дополнительных. В них будет храниться 120 записей за весь период.Библиотека работает в среднем 240 рабочих дней.Следовательно, объем хранимых данных можно рассчитать так:М = 240*100*5+120*3 = 360360 записей.Следовательно, за год объем БД не должен превысить 3Мб.2.5. Описание групп пользователей и прав доступаРаботать с базой данных будут две категории пользователей:Администратор;Библиотекарь.Администратору доступны все таблицы БД.Библиотекарю не доступна информация о классификации книг и списанию книг. 3. Формирование запросов к СУБД3.1. Создание таблиц в базе данныхОписание даталогической модели БД [6, 8] представлено в таблице 3.1.Таблица 3.1 – Описание даталогической модели БДТаблицаПолеТип поляРазмер поляОграниченияКнигиКодКнигиInteger-NOT NULLНаименование Varchar50NOT NULLАвторыVarchar50NOT NULLГодВыходаDateTime--ЧитателиКодЧитателяInteger-NOT NULLФИОVarchar50NOT NULLАдресVarchar50-ТелефонVarchar50-НомерЧитБилетаVarchar10NOT NULLЧитальные залыКодЗалаInteger-NOT NULLНаименованиеVarchar50NOT NULLНомерInteger-NOT NULLВместимостьInteger-NOT NULLКлассификацияКодКлассификацииInteger-NOT NULLКнигиКодКнигиInteger-NOT NULLКодКнигиInteger-NOT NULLШифрVarchar10NOT NULLДатаКлассификацииDateTime-NOT NULLВыдача книгКодВыдачиIntegerNOT NULLКодЧитателяInteger-NOT NULLДатаВыдачиDateTime-NOT NULLКодКнигиInteger-NOT NULLДатаВвозвратаDateTime--Запись в читальный залКодЗаписиIntegerNOT NULLДатаЗаписиDateTime-NOT NULLКодЧитателяInteger-NOT NULLКодЧитальногоЗалаInteger-NOT NULLДатаВыпискиDateTime--Списание книгКодСписанияInteger-NOT NULLДатаСписанияDateTime-NOT NULLКодКнигиInteger-NOT NULL Книги в залахКодУчетаInteger-NOT NULLКодКнигиInteger-NOT NULLКодЧитальногоЗалаInteger-NOT NULLКоличествоInteger-NOT NULLПользовательКод пользователяIntegerNOT NULLЛогинVarchar20NOT NULLПарольVarchar20NOT NULLБиблиотекарьBit--ЧитательBit--На рисунке 3.1 представлена даталогическая модель БД [7].Рисунок 3.1 – Даталогическая модель БДДля создания базы данных была использована стандартная среда администрирования баз данных выбранной СУБД MS SQL Server – Среда администрирования MS SQL Server Management.На рисунках 3.2-3.11 представлена структура созданных таблиц БД.Рисунок 3.1 – Структура таблицы «Книги»Рисунок 3.2 – Структура таблицы «Читальные залы»Рисунок 3.3 – Структура таблицы «Читатели»Рисунок 3.4 – Структура таблицы «Классификация»Рисунок 3.5 – Структура таблицы «Запись в читальный зал»Рисунок 3.6 – Структура таблицы «Выдача книг»Рисунок 3.7 – Структура таблицы «Книги в залах»Рисунок 3.7 – Структура таблицы «Списание»На рисунке 3.9 представлена модель базы данных, отражающая индексы и связи таблиц БД.Рисунок 3.9 - Модель связей таблиц базы данныхСкрипт создания таблиц БД представлен в приложении А.3.2. Проектирование наиболее востребованных запросовВ информационной системе учета работы библиотеки созданы следующие запросы:Какие книги закреплены за читателем?SELECT dbo.Читатели.ФИО, dbo.Читатели.НомерЧитБилета, dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.ВыдачаКниг.ДатаВыдачиFROM dbo.ВыдачаКниг INNER JOIN dbo.Читатели ON dbo.ВыдачаКниг.КодЧитателя = dbo.Читатели.КодЧитателя INNER JOIN dbo.Книги ON dbo.ВыдачаКниг.КодКниги = dbo.Книги.КодКнигиWHERE (dbo.ВыдачаКниг.ДатаВозврата IS NULL)Рисунок 3.10 – Конструктор запросаКакой шифр у книги с заданным названием?SELECT TOP (1) dbo.Книги.Наименование, dbo.Классификация.ШифрFROM dbo.Книги INNER JOIN dbo.Классификация ON dbo.Книги.КодКниги = dbo.Классификация.КодКнигиWHERE (dbo.Книги.Наименование = @Наименование)ORDER BY dbo.Классификация.ДатаКлассифРисунок 3.11 – Конструктор запросаКогда книга была закреплена за читателем?SELECT dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.Книги.ГодВыхода, dbo.ВыдачаКниг.ДатаВыдачи, dbo.Читатели.ФИОFROM dbo.ВыдачаКниг INNER JOIN dbo.Книги ON dbo.ВыдачаКниг.КодКниги = dbo.Книги.КодКниги INNER JOIN dbo.Читатели ON dbo.ВыдачаКниг.КодЧитателя = dbo.Читатели.КодЧитателяРисунок 3.12 – Конструктор запроса  Какое число читателей пользуется библиотекой?SELECT COUNT(КодЧитателя) AS Expr1FROM dbo.ЧитателиРисунок 3.13 – Конструктор запросаЗаписывать нового читателя в библиотекуINSERT INTO Читатели (ФИО, Адрес, Телефон, НомерЧитБилета)VALUES (@FIO,@Adress,@Telephone,@NomerBileta)        Справка о количестве книг в читальном залеSELECT dbo.ЧитальныеЗалы.Наименование AS Зал, COUNT(dbo.Книги.Наименование) AS [Количество книг], dbo.Книги.Авторы, SUM(dbo.КнигиВЗалах.Количество) AS [Количество экз.]FROM dbo.ЧитальныеЗалы INNER JOIN dbo.КнигиВЗалах ON dbo.ЧитальныеЗалы.КодЗала = dbo.КнигиВЗалах.КодЧитЗала INNER JOIN dbo.Книги ON dbo.КнигиВЗалах.КодКниги = dbo.Книги.КодКнигиGROUP BY dbo.ЧитальныеЗалы.Наименование, dbo.Книги.АвторыРисунок 3.14 – Конструктор запросаСправка о количестве книг определенного автора в читальном залеSELECT dbo.ЧитальныеЗалы.Наименование AS Зал, COUNT(dbo.Книги.Наименование) AS [Количество книг], dbo.Книги.Авторы, SUM(dbo.КнигиВЗалах.Количество) AS [Количество экз.]FROM dbo.ЧитальныеЗалы INNER JOIN dbo.КнигиВЗалах ON dbo.ЧитальныеЗалы.КодЗала = dbo.КнигиВЗалах.КодЧитЗала INNER JOIN dbo.Книги ON dbo.КнигиВЗалах.КодКниги = dbo.Книги.КодКнигиGROUP BY dbo.ЧитальныеЗалы.Наименование, dbo.Книги.АвторыHAVING (dbo.Книги.Авторы = @Avtor)Рисунок 3.15 – Конструктор запросаКоличество записавшихся в библиотеку в этот месяцSELECT COUNT(dbo.ЗаписьВЧитЗал.КодЗаписи) AS Expr2FROM dbo.ЗаписьВЧитЗал INNER JOIN dbo.Читатели ON dbo.ЗаписьВЧитЗал.КодЧитателя = dbo.Читатели.КодЧитателяGROUP BY MONTH(dbo.ЗаписьВЧитЗал.ДатаЗаписи)HAVING (MONTH(dbo.ЗаписьВЧитЗал.ДатаЗаписи) = MONTH({ fn NOW() }))Рисунок 3.16 – Конструктор запросаКакие книги и сколько раз были взяты в этот месяцSELECT dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.Книги.ГодВыхода, COUNT(dbo.Книги.КодКниги) AS [Выдано раз]FROM dbo.ВыдачаКниг INNER JOIN dbo.Книги ON dbo.ВыдачаКниг.КодКниги = dbo.Книги.КодКнигиGROUP BY dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.Книги.ГодВыхода, MONTH(dbo.ВыдачаКниг.ДатаВыдачи)HAVING (MONTH(dbo.ВыдачаКниг.ДатаВыдачи) = MONTH({ fn NOW() }))Рисунок 3.17 – Конструктор запроса Кто из читателей не брал книг в этот месяцSELECT КодЧитателяFROM dbo.ЧитателиWHERE (КодЧитателя NOT IN (SELECT DISTINCT КодЧитателя FROM dbo.ВыдачаКниг WHERE (MONTH(ДатаВыдачи) = MONTH({ fn NOW() }))))Рисунок 3.18 – Конструктор запросаДля добавления новой строки используется команда INSERT:INSERT INTO Читатели (ФИО, Адрес, Телефон, НомерЧитБилета) values (‘Новый читатель’, ‘Адрес1’, ‘Телефон’,’056255666’)3.3. Установка индексовАнализ готовых запросов показывает, что для повышения эффективности работы с данными необходимо создать индексы для всех внешних и первичных ключей. Приведём примеры создания индексов:create index Книги_IDS on Книги (КодКниги );create index EMP_IDS on Employers( EMP_ID );create index EMP_POSTS on Employers( EMP_POST );create index CL_IDS on Clients ( CL_ID );ЗаключениеВ ходе выполнения курсовой работы была создана база данных «Библиотека», направленная на облегчения работы библиотекарей.Исследована предметная область, рассмотрены особенности работы библиотеки и должностные обязанностей библиотекарей.Подробно описана постановка задачи курсового проекта. Определены основные моменты, которые должны быть учтены при проектировании базы данных.Рассмотрен список выделенных сущностей и их атрибутов. Создана модель «Сущность-связь».В состав базы данных входят таблицы, между которыми определена связь. Рассмотрены функциональные связи между атрибутами выделенных сущностями, проведена нормализация базы данных к 3НФ.Создана инфологическая и даталогическая модели БД.Для проектирования базы данных была выбрана СУБД MS SQL Server.Созданы основные запросы к базе данных. Рассмотрены механизмы защиты данных и требования к техническому обеспечению.Рассмотрена инструкция по использованию базы данных.В ходе выполнения курсового проекта были приобретены устойчивые навыки проектирования баз данных и разработки запросов. Полученные знания могут быть использованы при разработке более серьезных коммерческих проектов.Список литературыФедеральный закон о библиотечном деле №78-ФЗ от 29 декабря 1994.Федеральный закон «Об информации, информатизации и защите информации» с изменениями от 23 апреля 2018 года.Ванеев А.Н. Справочник библиотекаря / А.Н. Ванеев. СПб.: Профессия, 2015. – 256 с.Коротков Э.М. Разработка баз данных: учебник. - 2-е изд. – М.: ИНФРА - М, 2016. – 398 с.Кузин А. В. Базы данных: учеб. Пособие для студентов ВУЗов / А. В. Кузин, С. В. Левонисова. – 5-е изд., испр. – М.: издательский центр «Академия», 2012. – 320 с.Кузнецов С. Д. Базы данных: учебник для студентов учреждений высшего профессионального образования / С. Д. Кузнецов – – М.: издательский центр «Академия», 2012. – 496 с.Мирошниченко Г. А. Реляционные базы данных: практические приемы оптимальных решений. – СПб.: БХВ-Петербург, 2005. – 400 с.Мухин К.А. Проектирование баз данных, М.: Горячая линия – Телеком, 2017. – 240 с.http://www.intuit.ru – национальный открытый университет «Интуит». http://www.citforum.ru – центр информационных технологий.Приложение А. Скрипт создания БДCREATE TABLE [dbo].[Читатели]([КодЧитателя] [int] IDENTITY(1,1) NOT NULL,[ФИО] [varchar](50) NOT NULL,[Адрес] [varchar](50) NULL,[Телефон] [varchar](50) NULL,[НомерЧитБилета] [varchar](50) NULL, CONSTRAINT [PK_Читатели] PRIMARY KEY CLUSTERED ([КодЧитателя] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO/****** Object: View [dbo].[Какое число читателей пользуется библиотекой] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Какое число читателей пользуется библиотекой]ASSELECT COUNT(КодЧитателя) AS Expr1FROM dbo.ЧитателиGO/****** Object: Table [dbo].[ЗаписьВЧитЗал] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[ЗаписьВЧитЗал]([КодЗаписи] [int] IDENTITY(1,1) NOT NULL,[ДатаЗаписи] [datetime] NOT NULL,[КодЧитателя] [int] NOT NULL,[КодЧитЗала] [int] NOT NULL,[ДатаВыписки] [datetime] NULL, CONSTRAINT [PK_ЗаписьВЧитЗал] PRIMARY KEY CLUSTERED ([КодЗаписи] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO/****** Object: View [dbo].[Количество записавшихся в библиотеку в этот месяц] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Количество записавшихся в библиотеку в этот месяц]ASSELECT COUNT(dbo.ЗаписьВЧитЗал.КодЗаписи) AS Expr2FROM dbo.ЗаписьВЧитЗал INNER JOIN dbo.Читатели ON dbo.ЗаписьВЧитЗал.КодЧитателя = dbo.Читатели.КодЧитателяGROUP BY MONTH(dbo.ЗаписьВЧитЗал.ДатаЗаписи)HAVING (MONTH(dbo.ЗаписьВЧитЗал.ДатаЗаписи) = MONTH({ fn NOW() }))GO/****** Object: Table [dbo].[ВыдачаКниг] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[ВыдачаКниг]([КодВыдачи] [int] IDENTITY(1,1) NOT NULL,[КодЧитателя] [int] NOT NULL,[ДатаВыдачи] [datetime] NULL,[КодКниги] [int] NOT NULL,[ДатаВозврата] [datetime] NULL, CONSTRAINT [PK_ВыдачаКниг] PRIMARY KEY CLUSTERED ([КодВыдачи] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO/****** Object: Table [dbo].[Книги] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[Книги]([КодКниги] [int] IDENTITY(1,1) NOT NULL,[Наименование] [varchar](50) NOT NULL,[Авторы] [varchar](50) NULL,[ГодВыхода] [int] NULL, CONSTRAINT [PK_Книги] PRIMARY KEY CLUSTERED ([КодКниги] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO/****** Object: View [dbo].[Когда книга была закреплена за читателем] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Когда книга была закреплена за читателем]ASSELECT dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.Книги.ГодВыхода, dbo.ВыдачаКниг.ДатаВыдачи, dbo.Читатели.ФИОFROM dbo.ВыдачаКниг INNER JOIN dbo.Книги ON dbo.ВыдачаКниг.КодКниги = dbo.Книги.КодКниги INNER JOIN dbo.Читатели ON dbo.ВыдачаКниг.КодЧитателя = dbo.Читатели.КодЧитателяGO/****** Object: Table [dbo].[ЧитальныеЗалы] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[ЧитальныеЗалы]([КодЗала] [int] IDENTITY(1,1) NOT NULL,[Наименование] [varchar](50) NOT NULL,[Номер] [int] NULL,[Вместимость] [int] NULL, CONSTRAINT [PK_ЧитальныеЗалы] PRIMARY KEY CLUSTERED ([КодЗала] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO/****** Object: Table [dbo].[КнигиВЗалах] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[КнигиВЗалах]([КодУчета] [int] IDENTITY(1,1) NOT NULL,[КодКниги] [int] NOT NULL,[КодЧитЗала] [int] NOT NULL,[Количество] [int] NOT NULL, CONSTRAINT [PK_КнигиВЗалах] PRIMARY KEY CLUSTERED ([КодУчета] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO/****** Object: View [dbo].[Справка о количестве книг определенного автора в читальном зале] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Справка о количестве книг определенного автора в читальном зале]ASSELECT dbo.ЧитальныеЗалы.Наименование AS Зал, COUNT(dbo.Книги.Наименование) AS [Количество книг], dbo.Книги.Авторы, SUM(dbo.КнигиВЗалах.Количество) AS [Количество экз.]FROM dbo.ЧитальныеЗалы INNER JOIN dbo.КнигиВЗалах ON dbo.ЧитальныеЗалы.КодЗала = dbo.КнигиВЗалах.КодЧитЗала INNER JOIN dbo.Книги ON dbo.КнигиВЗалах.КодКниги = dbo.Книги.КодКнигиGROUP BY dbo.ЧитальныеЗалы.Наименование, dbo.Книги.АвторыGO/****** Object: Table [dbo].[Классификация] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[Классификация]([КодКлассиф] [int] IDENTITY(1,1) NOT NULL,[КодКниги] [int] NOT NULL,[Шифр] [varchar](50) NOT NULL,[ДатаКлассиф] [datetime] NOT NULL, CONSTRAINT [PK_Классификация] PRIMARY KEY CLUSTERED ([КодКлассиф] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO/****** Object: View [dbo].[Какой шифр у книги с заданным названием (поставить @Наименование в фильтр по наименованию)] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Какой шифр у книги с заданным названием (поставить @Наименование в фильтр по наименованию)]ASSELECT TOP (1) dbo.Книги.Наименование, dbo.Классификация.ШифрFROM dbo.Книги INNER JOIN dbo.Классификация ON dbo.Книги.КодКниги = dbo.Классификация.КодКнигиORDER BY dbo.Классификация.ДатаКлассифGO/****** Object: View [dbo].[Какие книги и сколько раз были взяты в этот месяц] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Какие книги и сколько раз были взяты в этот месяц]ASSELECT dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.Книги.ГодВыхода, COUNT(dbo.Книги.КодКниги) AS [Выдано раз]FROM dbo.ВыдачаКниг INNER JOIN dbo.Книги ON dbo.ВыдачаКниг.КодКниги = dbo.Книги.КодКнигиGROUP BY dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.Книги.ГодВыхода, MONTH(dbo.ВыдачаКниг.ДатаВыдачи)HAVING (MONTH(dbo.ВыдачаКниг.ДатаВыдачи) = MONTH({ fn NOW() }))GO/****** Object: View [dbo].[Какие книги закреплены за читателем] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Какие книги закреплены за читателем]ASSELECT dbo.Читатели.ФИО, dbo.Читатели.НомерЧитБилета, dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.ВыдачаКниг.ДатаВыдачиFROM dbo.ВыдачаКниг INNER JOIN dbo.Читатели ON dbo.ВыдачаКниг.КодЧитателя = dbo.Читатели.КодЧитателя INNER JOIN dbo.Книги ON dbo.ВыдачаКниг.КодКниги = dbo.Книги.КодКнигиWHERE (dbo.ВыдачаКниг.ДатаВозврата IS NULL)GO/****** Object: View [dbo].[Как называется книга с заданным шифром (нужно вставить @Шифр в фильтр по Шифру)] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[Как называется книга с заданным шифром (нужно вставить @Шифр в фильтр по Шифру)]ASSELECT dbo.Книги.Наименование, dbo.Книги.Авторы, dbo.Книги.ГодВыхода, dbo.Классификация.ШифрFROM dbo.Книги INNER JOIN dbo.Классификация ON dbo.Книги.КодКниги = dbo.Классификация.КодКнигиGO/****** Object: Table [dbo].[Списание] Script Date: 05.11.2021 22:00:04 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[Списание]([КодСписания] [int] IDENTITY(1,1) NOT NULL,[ДатаСписания] [datetime] NOT NULL,[КодКниги] [int] NOT NULL, CONSTRAINT [PK_Списание] PRIMARY KEY CLUSTERED ([КодСписания] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
54 132 оценки star star star star star
среднее 4.9 из 5
ТюмГУ
Спасибо большое за курсовую работу!! Оригинальность 75%, оценка отлично
star star star star star
СПбГУ
Очень грамотное написание курсовой, видно, что исполнитель разбирается в теме работы и пиш...
star star star star star
РЭУ им.Плеханова
Благодарю Евгению за выполнение работы,оценка-отлично.Сделано -все как положено,грамотно и...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

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

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно
    Введите ваш e-mail
    Файл с работой придёт вам на почту после оплаты заказа
    Успешно!
    Работа доступна для скачивания 🤗.