отчет (1185812)
Текст из файла
Практическое задание №1 по курсу МПЗиО.Асирян Александр.Задание:База данных «Курсы иностранных языков» (7 баллов)Требуется спроектировать базу данных для курсов по изучению иностранныхязыков. В этой базе заказчик хотел бы хранить информацию о том, какие языки и на каких уровнях могут изучаться на курсах; о преподавателях, ведущих занятия; о студентах, обучавшихся или обучающихся сейчас на курсах.Некоторые существенные условия: каждый преподаватель может вести занятия только по одномуязыку, но на разных уровнях обучения; единовременно студент может посещать только один языковойкурс.Этап №1.В данном задании сущностями могут быть Студент, Учитель, Курс, Язык иУровень. Первые три необходимы, так как непосредственно связаны спредметной областью.
Сущности Язык и Уровень можно рассматривать ввиде множеств (ENUM), но последние имеют ряд недостатков, в основномсвязанных с сопровождением, например при добавлении новых атрибутов илиизменении набора значений текущих. Предполагается, что удаление из этихсущностей не производится.Этапы №2, №3, №4.У всех сущностей в качестве идентификатора (первичного ключа) выступаетатрибут id.обязательный атрибут, необязательный атрибут.Язык:id, названиеУровень:id, название, описаниеСтудент:id, фамилия, имя, отчество, дата рождения, пол, номер телефона,электронный адрес.Учитель:id, фамилия, имя, отчество, дата рождения, пол, номер телефона,электронный адрес.Каждый учитель обязательно преподает язык и только один.
Язык можетпреподаваться несколькими учителями, при это могут быть языки, которые непреподаются никем. Т.е. имеет место отношение «один-ко-многим». В этомслучае дополнительную таблицу для связи заводить не нужно. Обновление –каскадное.n1УчительЯзыкКаждый учитель преподает на нескольких уровнях, при этом долженпреподавать хотя бы на одном. Уровень может преподаваться несколькимипреподавателями,аможетинепреподаватьсяникем.Необходимо завести дополнительную таблицу с атрибутами: id, id учителя, idязыка.nnУчительУровеньКурс:id, уровень, начало занятий, конец занятий, описание.Начало занятий всегда раньше конца занятий – проверяется с помощьютриггеров перед обновлением и добавлением.Язык в курсе представлен неявно, через связь с учителем.Каждый учитель может преподавать несколько курсов.
В базе данныхдопускается наличие учителей, которые не преподают ни один курс. Курсможет преподаваться одним учителем или еще не преподаваться никем.Степень связи - «один-ко-многим». В этом случае дополнительную таблицудля связи заводить не нужно (внешний ключ будет NULL). Обновление –каскадное. При удалении заполняется NULL’ом.n1КурсУчительКаждый курс обязательно имеет уровень и только один. На одном уровнемогут преподаваться несколько курсов, но допускаются уровни, на которыхеще не преподают.
«один-ко-многим»: в этом случае дополнительную таблицудля связи заводить не нужно. То, что курс преподается на уровне, на которомможет преподавать учитель, проверяется с помощью триггеров передобновлением и добавлением. Обновление – каскадное.nКурс1УровеньКаждый курс может посещать несколько учеников, при это на курс можетбыть никто не записан. Каждый ученик может изучать несколько курсов(неодновременно). В БД допускаются ученики, которые не записаны ни наодин курс. Связь «многие-ко-многим» реализуется с помощьюдополнительной таблицы с атрибутами: id, id курса, id ученика.
То, что вданный момент ученик посещает только один курс проверяется с помощьютриггеров перед обновлением и добавлением.nnУченикКурсЭтапы №5, №6.Скрипты: СREATE_SCHEMA / DROP_SCHEMA – создание / удаление схемы БД CREATE_TABLES / DROP_TABLES – создание / удаление таблиц INSERT – заполнение таблицы тестовыми даннымиER-диаграмма:Пример заполнения таблиц:studentid1234last_nameАсирянИвановПетроваКузнецоваlanguageid1234NameEnglishSpanishItalianRussianfirst_nameАлександрИванМарияДарьяmiddle_nameКамоевичИвановичИвановнаПетровнаbirthdaysex04.02.1995101.01.2000131.12.1999001.01.19840phone_number8-800-555-35-008-800-555-35-018-800-555-35-028-800-555-35-03emailakasiryan@cs.msu.ruiiivanov@cs.msu.rumipetrova@cs.msu.rudpkuznetsova@cs.msu.rulevelid name1 Beginner2 Intermediate3 AdvanceddescriptionYou will say and understand a few things in English.You will speak and understand reasonably well and use basictenses but will have problems with more complex grammarand vocabulary.You will speak and understand very well but sometimes willhave problems with unfamiliar situations and vocabulary.teacherid last_name1 Столяров2 Полосин3 Панфёров4 Гайсарянfirst_name middle_name birthdaysex phone_numberАндрейВикторович25.12.19741 8-800-555-3535АлексейАндреевич23.12.19701 8-800-555-3536ВалерийСемёнович02.01.19501 8-800-555-3537СергейСуренович20.02.19471 8-800-555-3538teacher_levelclassid level_id teacher_id start_date end_date111 12.10.2016 05.05.2017231 15.11.2016 30.11.2017322 01.01.2017 19.05.2017433 05.05.2016 02.02.2017533 29.11.2016 08.07.2017614 09.08.2015 13.10.2016class_studentid class_id student_id161251322413544emaillanguage_idavstolyarov1@cs.msu.ruaapolosin@2cs.msu.ruvspanferov3@cs.msu.russgaisaryan4@cs.msu.rudescriptionGood class.Good class.Good class.Good class.Good class.Good class.id teacher_id level_id111213322433541642743Проверка условий: о том, какие языки и на каких уровнях могут изучаться на курсах;SELECT DISTINCT language.name, level.name FROM classJOIN teacher ON teacher_id = teacher.idJOIN language ON teacher.language_id = language.idJOIN level ON level_id = level.idORDER BY language.id, level.id о преподавателях, ведущих занятия;SELECT last_name, first_name, middle_name, birthday,IF(sex = 0, 'FEMALE', 'MALE') as sex, phone_number, email,name as language FROM teacherJOIN language ON teacher.language_id = language.id о студентах, обучавшихся или обучающихся сейчас на курсах.SELECT last_name, first_name, middle_name, birthday,IF(sex = 0, 'FEMALE', 'MALE') as sex, phone_number,email FROM student каждый преподаватель может вести занятия только по одномуязыку, но на разных уровнях обучения;Один учитель – один язык: гарантируется БД, т.к.
учительидентифицируется атрибутом id.Один учитель – разные уровни: отражается в таблице class. единовременно студент может посещать только один языковойкурс.Проверяется с помощью триггеров перед обновлением и добавлениемзаписей в таблицу class_student..
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.