Урок №1 – Информация и данни. Информационни процеси и системи
Тест за самопроверка на знанията: https://forms.gle/Ar9rodfundHyKcTV6
Да раздвижим ума: https://learningapps.org/watch?v=p4thuuh0t21
Урок №2 – Файлов подход и подход с база от данни
Тест за самопроверка на знанията: https://forms.gle/tu85bTMkzFn56HBo9
Урок №3 – Модели на данните в бази от данни
Тест за самопроверка на знанията: https://forms.gle/6xfu1EvWBtrPyBuC9
Урок №4 – Релационна база от данни
Тест за самопроверка на знанията: https://forms.gle/UWercivDaQauiimz6
Урок №5 – Нормализация на данните
Тест за самопроверка на знанията: https://forms.gle/gVwu5F4WG1meE3s36
Задача за упражнение: Проектира се база от данни, която да обработва информацията, необходима на една библиотека. Да се разгледа следната таблица и да се нормализира:
Обобщаващ тест: https://forms.gle/h9EViADXeu8vbjuZ9
MS Access
1. Таблица (Tables) – в таблицата се съхраняват данни, тематично обособени и характеризиращи обект, дейност или др. Всяка таблица съдържа полета (колони), в които се съхраняват конкретни характеристики на група обекти (напр. име, адрес, телефон) и записи (редове), в които се съдържа цялата информация за даден обект.
2. Формуляри (Forms) – предназначени са за разглеждане на данните от отделните таблици и добавяне на нови записи. Добре проектираните формуляри улесняват въвеждането на данни и правят работата с бази данни по-достъпна за обикновения потребител.
3. Заявки(Quires) – обект, който предоставя потребителски изглед на данни от една или няколко таблици. С тяхна помощ може да се прави:
- избор на данни, удовлетворяващи дадено условие;
- актуализация на данните;
- вмъкване или изтриване на данни;
- създаване на нова таблица с данни или повече съществуващи таблици.
4. Отчети (Reports) – обект създадена за форматиране, изчисляване, отпечатване и обобщаване на избраните данни. С помощта на отчетите могат да се проектират и отпечатват адресни етикети и серийни писма.
5. Макроси (Macros) – последователност от команди за автоматизиране на често използвани операции
6. Модули – съдържат описание на процедури за обработване на данните на език за програмиране Visual Basic.
SQL
MS SQL Server Express 2019 е безплатна версия на системата за управление на релационни бази данни на Microsoft SQL Server, използвана за разработване на бази данни и SQL заявки.
Инсталацията включва:
- Изтегляне и инсталиране на SQL Server Express.
- Изтегляне и инсталиране на SQL Server Management Studio (подобно на Visual Studio).
- Настройване на инсталацията на SQL Server Express 2019.
1. Изтеглете SQL Server Express от Microsoft: https://www.microsoft.com/en-us/sql-server/sql-server-downloads
2. Стартирайте изпълнимия файл. В инсталатора изберете един от видовете инсталация:
- Basic – за инсталиране на SQL Server 2019 Express издание с настройки по подразбиране.
- Custom – за настройка на допълнителни функции.
- Download Media – за да изтеглите инсталационни файлове за по-късна инсталация.
Най-лесният вариант е да се спрете на Basic инсталацията.
След стартиране на инсталационния процес ще видите лента за напредъка, информираща, че инсталационният пакет се изтегля и че SQL Server Express се инсталира. По време на инсталацията можете да поставите на пауза или да отмените инсталацията.
3. След като инсталацията приключи, можете да инсталирайте SQL Server Management Studio.
Разбира се можете да го изтеглите и инсталирате и на по-късен етап: https://docs.microsoft.com/en-gb/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
4. Време е да конфигурирате SQL Server Express. Стартирайте SQL Server Configuration Manager.
Така изглежда прозореца, след като отворите SQL Sever Configuration Manager.
Сървърът се пуска при работа и след приключване, се спира, за да не товари компютъра. След кликване върху SQL Sever (SQLEXPRESS) се включва Running.
SQL Server използва модел, наречен клиент – сървър. Тази архитектура е много подходяща за разработване на информационни системи, поради хардуерната си концепция за предоставяне на услуги в мрежата.
Архитектура на SQL Server
1. Логическо хранилище
- Инстанция (Instance).
- База данни (Database).
- Схема (Schema).
- Таблица (Table).
2.Физическо хранилище
- Файлове с данни и and Log файлове.
- Страници с данни.
Таблици
Таблиците са основен обект на базата данни. В тях се записват данни, тематично обособени и характеризиращи обект, дейност и др.
Всеки ред на таблицата представлява един запис или кортеж, а колоните полета – те определят типа на данните които съхраняват.
Същност на SQL
- SQL (Structured Query Language – език за структурирани заявки) е стандартния език, използван за дефиниране, обновяване и извличане на данни от релационните бази от данни.
- Наличието на голямо разнообразие от системи за управление на бази от данни води до необходимостта от дефиниране на стандарт, на който да съответстват.
- Стандартът SQL се дефинира съвместно от ANSI (American National Standards Institute – Американски национален институт по стандартизация) и ISO (International Organization for Standardization – Международна организация по стандартизация). Първоначалният стандарт е разработен през 1986 година, след което е няколкократно преработван.
SQL е декларативен език. Той е логически разделен на четири части:
- Data Definition – описва структурата на нашите данни.
- Data Manipulation – записва и чете данни.
- Data Control – определя кой има достъп до данните.
- Transaction Control – пакетни операции и позволяване на възстановяването.
Типове данни на SQL Server (тук са изброени само най-често използваните типове в езика)
Числови типове данни (Numeric)
- BIT (1-bit), TINYINT (8-bit), SMALLINT (16-bit).
- INT (32-bit), BIGINT (64-bit).
- FLOAT, REAL, DECIMAL(precision, scale).
Текстов тип данни (Textual)
- CHAR(size) – текст с фиксирана дължина.
- VARCHAR(size) – текст с променлива дължина.
- NCHAR(size) – Unicode текст с фиксирана дължина.
- NVARCHAR(size) – Unicode текст с променлива дължина.
Двоични данни (Binary data)
- BINARY(size) – последователност от битове с фиксирана дължина.
- VARBINARY(size) – последователност от битове, 1-8000 байта или MAX (2GB).
Дата и час
- DATE – дата в интервала от 0001-01-01 до 9999-12-31.
- DATETIME – дата и час в точност до 1/300 сек.
- DATETIME2 – по–голям интервал за датата.
- SMALLDATETIME – дата и час (точност – 1 минута).
- TIME – определя време на деня (без часова зона).
- DATETIMEOFFSET – дата и час с часова зона.
SQL заявки
Характерно за SQL е, че вместо формалните понятия релация, атрибут и кортеж, се използват неформалните понятия за обектите в релационния модел – таблица, колона и ред.
Наименованието на езика SQL произхожда от факта, че заявките са най-често използваната част от него.
Заявката е конструкция, зададена към системата за управление на бази от данни, която изисква получаването на определена информация.
Създаване на БД с SQL
Създаване на таблица в SQL
Заявката SELECT
Всички заявки в SQL се състоят от една конструкция и тя е SELECT, т.е. конструкцията SELECT се използва за извличане на данни от една или повече таблици.
Резултатът е релация (набор от данни в табличен вид), състояща се от атрибути (колони) и кортежи (редове).
Синтаксисът на командата SELECT може да бъде обобщен по следния начин:
Примери:
Заявката SELECT DISTINCT
Изразът SELECT DISTINCT се използва за връщане само на различни (различни) стойности. В базата с данни една колона често съдържа много дублиращи се стойности и понякога само искате да посочите различните стойности. Израза SELECT DISTINCT се използва за връщане само на различни стойности.
Клаузата WHERE се използва за филтриране на записите. Тя извлича само тези записи, които отговарят на определено условие.
Пример:
Клаузата WHERE може да се комбинира с AND, OR и NOT оператори. Операторите AND и OR се използват за филтриране на записи въз основа на повече от едно условие:
- Операторът „AND“ показва запис, ако всички условия, разделени от AND са TRUE.
- Операторът „OR“ показва запис, ако някое от условията, разделени от OR е TRUE.
- Операторът „NOT“ показва запис, ако състоянието не е TRUE.
Синтаксис на оператора AND:
Синтаксис на оператора OR:
Синтаксис на оператора NOT:
Пример:
Ключовата дума ORDER BY се използва за сортиране на набор от резултати във възходящ или низходящ ред. Тя подрежда записите по подразбиране във възходящ ред. За да сортирате записите в низходящ ред, използвайте DESC.
Пример:
GROUP BY често се използва с функции (COUNT, MAX, MIN, SUM, AVG) за групиране на резултат от една или повече колони.
Пример:
Агрегатни функции
Всяка агрегатна функция получава множество от стойности на зададен като аргумент атрибут от всички кортежи на групата и ги свежда до една агрегатна стойност.
- Функцията COUNT() връща броя редове, съответстващи на определени критерии.
- Функцията AVG() връща средната стойност на цифрова колона.
- Функцията SUM() връща общата сума на цифровата колона.
- Функцията MIN() връща най-малката стойност на избраната колона.
- Функцията MAX() връща най-голямата стойност на избраната колона.
Със средствата на SQL създайте база от данни „School“.
Указания за изпълнение:
Отваряме SQL Sever Management Studio 18.
В прозореца Server name избираме localhost\SQLEXPRESS или името, с което е наименуван вашият сървър, за да свържем с базата. Кликваме Connect.
Създайте нова база данни „School”.
Изберете New Database от контекстното меню на „Databases„.
Напишете името на БД и изберете OK. Това ще създаде Вашата база данни.
Създайте следните таблици със съответните полета:
- Таблица Students – IdStudents (int), Name (varchar(50)), Surname (varchar(50)), Family (varchar(50)), EGN (char(10)), City (varchar(50)), Address (varchar(50)), Birth_date (date), Birth_place (varchar(50)), Email (varchar(50)), Mobile (char(16)) NULL.
- Таблица Staff – IdStaff (int), Name (varchar(50)), Family (varchar(50)), Position (varchar(50)), EGN (char(10)), City (varchar(50)), Address (varchar(50)), Email (varchar(50)), Mobile (char(16)), IdClass (smallint), Salary (decimal)
- Таблица School_data – IdSchool (int), Name (varchar(50)), City (varchar(50)), District (varchar(50)), Address (varchar(50)), Phone (char(16)), Website (varchar(50)), Patron_day (date)
- Таблица Classes – IdClass (smallint), Name (varchar(50)), NumStud (smallint), Tutor (int), Classroom (char(10), IdSchool (int)
- Таблица Subjects – IdSubject (int), SubjectName (varchar(50))
- Таблица Grades – IdGrade (int), IdStudent (int), IdSubject (int), GradeDate (date), Grade (float)
- Таблица Teaching – IdTeacher (int), IdSubject (int), IdClass (smallint)
Създаване на таблица Students.
Кликнете с десен бутон на мишката върху папка Table и от контекстното меню New изберете Table.
Въведете всички полета в таблицата.
Сега е ще определим ключово поле. Primary Key (първичният ключ) се използва за еднозначно идентифициране и индексиране на записите. В нашата таблица полето IdStudents ще бъде ключово поле.
Задаване на primary key на колона става по следния начин:
Обърнете внимание на следните настройки: Identity – стойността в колоната автоматично се увеличава, когато се добавя нов запис. Тези стойности не могат да се задават ръчно. Identity Seed e начална стойност (1 по подразбиране). Identity Increment показва с колко се увеличава всяка поредна стойност.
Създайте останалите таблици по аналогичен начин. Определете ключовите полета за всяка таблица.
Създаване на релации.
Сега нека направим връзките между нашите таблици. Кликвате с десен бутон на мишката върху Database Diagram и избирате New Database Diagram от контекстното меню.
Появява се прозорец от който трябва да изберете всички таблици, които искате да бъдат включени в диаграмата и да натиснете бутона Add.
Изтеглете колоната IdStudents от таблица Students и я пуснете върху колоната IdStudent от таблицата Grades. Уверете се, че прозорецът изглежда на показания по-долу начин и изберете OK.
По същия начин свържете другите таблици.
Сега е време да въведете данни във всяка таблица.
Заявки към база данни „School“
Отворете вече попълнената база от данни и опитайте да създадете няколко заявки.
Указания за изпълнение:
- Напишете SQL заявка, за да намерите цялата налична информация за учениците.
Изберете New Query и въведете показания код.
Синтаксис:
SELECT * FROM Students
Изпълнете заявката чрез бутона Execute. Съхранете заявката под името Query_1.
Резултат: (при вас резултатът може да бъде по-различен поради разликата във въведените стойности)
Създайте подобни заявки и за останалите таблици.
- Напишете SQL заявка, която намира всички имена на ученици.
- Напишете SQL заявка, която намира всички имена на всеки член на персонала в училището.
- Напишете SQL заявка, която намира всички предмети.
- Напишете SQL заявка, която намира име, фамилия и град на всеки ученик.
- Напишете SQL заявка, която намира пълното име на всеки ученик.
Пълното име е комбинация от собственото, бащиното и фамилното име (разделени с единичен интервал) и те трябва да бъдат в една колона, наречена „Full Name“.
Синтаксис:
SELECT Name + ‘ ‘ + Surname + ‘ ‘ + Family AS [Full Name]
FROM Students
Резултат:
- Напишете SQL заявка, която намира пълното име на всеки член на персонала в училището.
- Напишете SQL заявка, за да намерите цялата информация за учениците, чийто роден град е „Дупница“ (използвайте град, който фигурира във вашата база данни).
Резултат:
- Напишете SQL заявка, за да намерите цялата информация за учителите, чийто роден град е „Дупница“ (използвайте град, който фигурира във вашата база данни).
Опитайте да проявите творчество и създайте подобни заявки, които да отговарят на дадено условие.
- Напишете SQL заявка, за да намерите информация за учениците, които имат оценка 6.
Резултат:
- Напишете SQL заявка, за да намерите информация за учениците, които имат оценка между 4 и 6 и добавете съответните предмети.
Синтаксис:
SELECT IdStudent, IdSubject
FROM Grades
WHERE Grade BETWEEN 4 AND 6
Резултат:
- Напишете SQL заявка, за да подредите учениците по азбучен ред.
Резултат:
- Напишете SQL заявка, за да подредите персонала по азбучен ред.
- Напишете SQL заявка, за да подредите предметите по азбучен ред.
- Напишете SQL заявка, която намира номер на ученика, номер на предмета и оценката на тези ученици, които имат оценка по-голяма или равна на 4. Подредете ги в намаляващ ред на оценката.
Резултат:
- Напишете SQL заявка, която намира номер на ученик и номер на предмет на 5-те най – високо оценени ученици, подредени в низходящ ред на оценката.
Резултат:
- Напишете SQL заявка, която сортира всички записи в таблицата Students по следните критерии:
- по собствено име по азбучен ред.
- по фамилия низходящо.
- по месторождение по азбучен ред.
Резултат:
- Напишете SQL заявка, която намира първите 10 написани оценки. Подредете ги по дата.
Резултат:
- „Проектиране на бази данни за простосмъртни“, Майкъл Ернандес, АлексСофт, 2021.
- „Информатика профилирана подготовка 12 клас – Модул: Релационен модел на бази от данни“, К. Манев, Ф. Андонов, Н. Манева, Изкуства, 2021.
- „SQL – практическо програмиране“, Денис Колисниченко, Асеневци, 2018.
- „Практикум по бази от данни – I част“, Цветанка Трифонова, Унивeрсuтeтcкo uзgameлствo „Cв. cв. Kupuл u Meтoдий“, 2012.
- „Microsoft Access 2013 Step by Step“, Джоан Ламбърт и Джойс Кокс, АлексСофт, 2013.
- „Проектиране на бази от данни“, Майкъл Ернандес, Софтпрес, 2004.
- „Пълно ръководство за програмиране“, Шапиро Дж., ИнфоДАР, София, 2001.
- „Microsoft SQL Server 7.0 Поглед отвътре – I и II том“, Р. Сукъп и К. Дилейни, СофтПрес, София, 2000.
- „Microsoft Access 2000 Step by Step“, Catapult Inc, СофтПрес, 1999.
- „Опознайте Access for Windows 95“, Боб Шнайдер, SoftPress Publishing, 1996.
Последни коментари