1. Теоретична част
1. Ограничение UNIQUE
UNIQUE не позволява две различни записа в таблицата да имат една и съща стойност в дадена колона. За разлика от PRIMARY KEY, в една таблица може да има няколко UNIQUE ограничения. В SQL Server UNIQUE колона допуска най-много една NULL стойност.
- Към колона:
Email NVARCHAR(100) UNIQUE - Именувано, на ниво таблица:
CONSTRAINT UQ_Customers_Email UNIQUE (Email)
2. Ограничения CHECK и DEFAULT
CHECK проверява дали въведената стойност отговаря на зададено условие и отхвърля записа, ако не отговаря. DEFAULT задава стойност по подразбиране, когато при INSERT за колоната не е подадена стойност.
- CHECK:
Price DECIMAL(10,2) CHECK (Price > 0) - DEFAULT:
CreatedOn DATETIME DEFAULT GETDATE()илиQuantity INT DEFAULT 0
2. Практическо задание
Тема: Ограничения UNIQUE, CHECK и DEFAULT
Време за работа: 35 минути
Условие 1: В база данни OnlineShop създайте таблица Customers с колони: CustomerID INT PRIMARY KEY, FullName NVARCHAR(100) NOT NULL, Email NVARCHAR(100) и Phone NVARCHAR(20). Таблицата трябва да не допуска повтарящи се имейли и телефони.
- Задайте UNIQUE ограничения с имена UQ_Customers_Email и UQ_Customers_Phone. Въведете клиентите (1, N'Иван Петров', 'ivan@mail.bg', '0888111222') и (2, N'Мария Дончева', 'maria@mail.bg', '0888333444').
- Опитайте да въведете клиент (3, N'Петър Грозев', 'ivan@mail.bg', '0888555666'). Запишете съобщението за грешка и обяснете в един ред защо възниква.
Условие 2: Създайте таблица Products с колони: ProductID INT PRIMARY KEY, ProductName NVARCHAR(100) NOT NULL, Price DECIMAL(10,2), Quantity INT и CreatedOn DATETIME. Таблицата трябва да контролира стойностите и да попълва автоматично липсващите данни.
- Добавете CHECK за Price > 0 и за Quantity >= 0, DEFAULT 0 за Quantity и DEFAULT GETDATE() за CreatedOn.
- Въведете продукт само с ProductID, ProductName и Price (например 1, N'Безжична мишка', 29.90) и проверете със SELECT попълнените автоматично колони. След това опитайте INSERT с Price = -5 и запишете резултата.
3. Цел
Цел: Учениците упражняват дефиниране на UNIQUE, CHECK и DEFAULT в CREATE TABLE. След задачата трябва да могат да проверят действието на ограниченията чрез коректни и некоректни INSERT заявки.
4. Критерии за оценяване
| Критерий | Точки |
|---|---|
| 1. Спазване на правилата за здравословни и безопасни условия на труд и опазване на околната среда | 10 т. |
| 2. Ефективна организация на работното място | 10 т. |
| 3. Спазване на технологичната последователност на операциите според индивидуалното задание | |
| 3.1 Създадена таблица Customers с именувани UNIQUE ограничения и въведени два клиента | 20 т. |
| 3.2 Проверен опит за повторен имейл и записана и обяснена грешка | 20 т. |
| 3.3 Създадена таблица Products с CHECK и DEFAULT ограничения и проверка със SELECT и с невалидна цена | 20 т. |
| 3.4 Правилен синтаксис, точност на данните и работещ краен резултат | 20 т. |
| Общо: | 100 т. |
5. Оценъчна скала
| Оценка | Точков диапазон |
|---|---|
| Отличен (6) | 90–100 т. |
| Много добър (5) | 80–89 т. |
| Добър (4) | 70–79 т. |
| Среден (3) | 60–69 т. |
| Слаб (2) | под 60 т. |
Изготвил: Цветелин Борисов