Базы данных | Задания для практического занятия 3
Создание, изменение и удаление таблиц в SQL
Вариант 1: База данных онлайн-книжного магазина
Вариант 1: База данных онлайн-книжного магазина
Сценарий: Вам поручено создать базу данных для онлайн-книжного магазина. Эта база данных изначально будет управлять книгами и их авторами.
Схемы таблиц:
- Таблица
books
:book_id
: Уникальный идентификатор для каждой книги (автоинкрементное целое число, первичный ключ).title
: Название книги (текст, не null, максимальная длина 100 символов).isbn
: Международный стандартный книжный номер (текст, уникальный, максимальная длина 20 символов).publication_year
: Год публикации (целое число).genre
: Жанр книги (текст, максимальная длина 50 символов).
- Таблица
authors
:author_id
: Уникальный идентификатор для каждого автора (автоинкрементное целое число, первичный ключ).author_name
: Имя автора (текст, не null, максимальная длина 100 символов).nationality
: Национальность автора (текст, максимальная длина 50 символов).birth_date
: Дата рождения автора (дата).
Задания:
- Создайте таблицы
books
иauthors
в вашей базе данных, используя операторCREATE TABLE
. - Добавьте два новых столбца в таблицу
books
:price
(десятичное число) иstock_quantity
(целое число, значение по умолчанию 0). - Измените столбец
genre
в таблицеbooks
так, чтобы его максимальная длина составляла 75 символов, и измените тип данныхpublication_year
наSMALLINT
. - Переименуйте столбец
author_name
в таблицеauthors
наname
и переименуйте столбецnationality
наcountry
. - Удалите столбец
birth_date
из таблицыauthors
и столбецgenre
из таблицыbooks
. - Удалите таблицу
authors
из базы данных, используя операторDROP TABLE
.
Вариант 2: База данных управления мероприятиями
Вариант 2: База данных управления мероприятиями
Сценарий: Вы создаете базу данных для управления мероприятиями и местами проведения для компании, занимающейся организацией мероприятий.
Схемы таблиц:
- Таблица
events
:event_id
: Уникальный идентификатор для каждого мероприятия (автоинкрементное целое число, первичный ключ).event_name
: Название мероприятия (текст, не null, максимальная длина 100 символов).event_date
: Дата мероприятия (дата, не null).start_time
: Время начала мероприятия (время).category
: Категория мероприятия (текст, максимальная длина 50 символов).
- Таблица
venues
:venue_id
: Уникальный идентификатор для каждого места проведения (автоинкрементное целое число, первичный ключ).venue_name
: Название места проведения (текст, не null, максимальная длина 100 символов).address
: Адрес места проведения (текст, максимальная длина 200 символов).capacity
: Максимальная вместимость места проведения (целое число).venue_type
: Тип места проведения (например, ‘зал’, ‘стадион’, ‘парк’) (текст, максимальная длина 50 символов).
Задания:
- Создайте таблицы
events
иvenues
в вашей базе данных. - Добавьте два новых столбца в таблицу
events
:description
(текст) иis_cancelled
(логический тип, значение по умолчанию false). - Сделайте столбец
category
в таблицеevents
NOT NULL
и измените тип данныхcapacity
в таблицеvenues
наBIGINT
. - Переименуйте столбец
event_name
в таблицеevents
наtitle
и переименуйте столбецvenue_name
в таблицеvenues
наname
. - Удалите столбец
start_time
из таблицыevents
и столбецvenue_type
из таблицыvenues
. - Удалите таблицу
venues
из базы данных.
Вариант 3: База данных музыкальной библиотеки
Вариант 3: База данных музыкальной библиотеки
Сценарий: Вы создаете базу данных для управления личной музыкальной библиотекой, отслеживая песни и исполнителей.
Схемы таблиц:
- Таблица
songs
:song_id
: Уникальный идентификатор каждой песни (автоинкрементное целое число, первичный ключ).song_title
: Название песни (текст, не null, максимальная длина 100 символов).duration_seconds
: Продолжительность песни в секундах (целое число).release_year
: Год выпуска песни (целое число).genre
: Жанр песни (текст, максимальная длина 50 символов).
- Таблица
artists
:artist_id
: Уникальный идентификатор каждого исполнителя (автоинкрементное целое число, первичный ключ).artist_name
: Имя исполнителя (текст, не null, максимальная длина 100 символов).origin_country
: Страна происхождения исполнителя (текст, максимальная длина 50 символов).formation_year
: Год образования исполнителя (целое число).
Задания:
- Создать таблицы
songs
иartists
в вашей базе данных. - Добавить два новых столбца в таблицу
songs
:album_name
(текст, максимальная длина 100 символов) иplay_count
(целое число, по умолчанию 0). - Изменить столбец
genre
в таблицеsongs
, установив максимальную длину 75 символов, и изменить тип данныхduration_seconds
наREAL
. - Переименовать столбец
song_title
в таблицеsongs
наtitle
и переименовать столбецartist_name
в таблицеartists
наname
. - Удалить столбец
release_year
из таблицыsongs
и столбецformation_year
из таблицыartists
. - Удалить таблицу
artists
из базы данных.
Вариант 4: База данных простой блог-платформы
Вариант 4: База данных простой блог-платформы
Сценарий: Вы проектируете базу данных для простой блог-платформы, чтобы управлять записями блога и категориями.
Схемы таблиц:
- Таблица
posts
:post_id
: Уникальный идентификатор каждой записи (автоинкрементное целое число, первичный ключ).post_title
: Заголовок записи блога (текст, не null, максимальная длина 200 символов).content
: Содержимое записи блога (текст).publication_date
: Дата публикации записи (дата, по умолчанию текущая дата).is_published
: Статус публикации (логическое значение, по умолчанию false).
- Таблица
categories
:category_id
: Уникальный идентификатор каждой категории (автоинкрементное целое число, первичный ключ).category_name
: Название категории (текст, не null, уникальное, максимальная длина 50 символов).description
: Описание категории (текст, максимальная длина 200 символов).created_at
: Временная метка создания категории (timestamp with time zone, по умолчанию текущая временная метка).
Задания:
- Создать таблицы
posts
иcategories
в вашей базе данных. - Добавить два новых столбца в таблицу
posts
:author_name
(текст, максимальная длина 100 символов) иview_count
(целое число, по умолчанию 0). - Изменить столбец
post_title
в таблицеposts
, установив максимальную длину 255 символов, и изменить тип данныхpublication_date
наTIMESTAMP
. - Переименовать столбец
post_title
в таблицеposts
наtitle
и переименовать столбецcategory_name
в таблицеcategories
наname
. - Удалить столбец
is_published
из таблицыposts
и столбецdescription
из таблицыcategories
. - Удалить таблицу
categories
из базы данных.
Вариант 5: База данных рецептов
Вариант 5: База данных рецептов
Сценарий: Вы создаете базу данных для хранения рецептов и их ингредиентов для приложения с рецептами.
Схемы таблиц:
- Таблица
recipes
:recipe_id
: Уникальный идентификатор каждого рецепта (автоинкрементируемое целое число, первичный ключ).recipe_name
: Название рецепта (текст, не null, максимальная длина 100 символов).instructions
: Инструкции по приготовлению (текст).cuisine_type
: Тип кухни (например, ‘Итальянская’, ‘Мексиканская’, ‘Индийская’) (текст, максимальная длина 50 символов).preparation_time_minutes
: Время приготовления в минутах (целое число).
- Таблица
ingredients
:ingredient_id
: Уникальный идентификатор каждого ингредиента (автоинкрементируемое целое число, первичный ключ).ingredient_name
: Название ингредиента (текст, не null, уникальное, максимальная длина 100 символов).is_vegetarian
: Указывает, является ли ингредиент вегетарианским (логический тип, по умолчанию true).is_vegan
: Указывает, является ли ингредиент веганским (логический тип, по умолчанию false).
Задания:
- Создайте таблицы
recipes
иingredients
в вашей базе данных. - Добавьте два новых столбца в таблицу
recipes
:servings
(целое число, по умолчанию 1) иrating
(числовой, точность 2, масштаб 1, например, 4.5). - Измените столбец
cuisine_type
в таблицеrecipes
, чтобы он имел максимальную длину 75 символов, и измените тип данныхpreparation_time_minutes
наSMALLINT
. - Переименуйте столбец
recipe_name
в таблицеrecipes
наname
и переименуйте столбецingredient_name
в таблицеingredients
наname
. - Удалите столбец
instructions
из таблицыrecipes
и столбецis_vegan
из таблицыingredients
. - Удалите таблицу
ingredients
из базы данных.
Вариант 6: Простая база данных управления задачами
Вариант 6: Простая база данных управления задачами
Сценарий: Вы создаете базу данных для простого приложения управления задачами, чтобы управлять задачами и проектами.
Схемы таблиц:
- Таблица
tasks
:task_id
: Уникальный идентификатор каждой задачи (автоинкрементируемое целое число, первичный ключ).task_name
: Название задачи (текст, не null, максимальная длина 100 символов).description
: Описание задачи (текст).due_date
: Дата, к которой задача должна быть выполнена (дата).status
: Статус задачи (например, ‘To Do’, ‘In Progress’, ‘Completed’) (текст, максимальная длина 50 символов, по умолчанию ‘To Do’).
- Таблица
projects
:project_id
: Уникальный идентификатор каждого проекта (автоинкрементируемое целое число, первичный ключ).project_name
: Название проекта (текст, не null, максимальная длина 100 символов).start_date
: Дата начала проекта (дата).end_date
: Дата, когда проект, как ожидается, закончится (дата).priority
: Приоритет проекта (например, ‘High’, ‘Medium’, ‘Low’) (текст, максимальная длина 50 символов, по умолчанию ‘Medium’).
Задания:
- Создайте таблицы
tasks
иprojects
в вашей базе данных. - Добавьте два новых столбца в таблицу
tasks
:created_at
(метка времени с часовым поясом, по умолчанию текущая метка времени) иis_urgent
(логический тип, по умолчанию false). - Измените столбец
status
в таблицеtasks
, чтобы он имел максимальную длину 75 символов, и измените тип данныхdue_date
наTIMESTAMP
. - Переименуйте столбец
task_name
в таблицеtasks
наtitle
и переименуйте столбецproject_name
в таблицеprojects
наname
. - Удалите столбец
description
из таблицыtasks
и столбецend_date
из таблицыprojects
. - Удалите таблицу
projects
из базы данных.
Вариант 7: База данных библиотеки
Вариант 7: База данных библиотеки
Сценарий: Вы создаете базу данных для небольшой библиотеки для управления книгами и читателями.
Схемы таблиц:
- Таблица
books
:book_id
: Уникальный идентификатор для каждой книги (автоинкрементное целое число, первичный ключ).book_title
: Название книги (текст, не null, максимальная длина 150 символов).author
: Автор книги (текст, максимальная длина 100 символов).publication_year
: Год публикации (целое число).total_copies
: Общее количество доступных экземпляров (целое число, по умолчанию 1).
- Таблица
members
:member_id
: Уникальный идентификатор для каждого читателя библиотеки (автоинкрементное целое число, первичный ключ).member_name
: Имя читателя (текст, не null, максимальная длина 100 символов).address
: Адрес читателя (текст, максимальная длина 200 символов).phone_number
: Номер телефона читателя (текст, максимальная длина 20 символов).registration_date
: Дата регистрации читателя (дата, по умолчанию текущая дата).
Задания:
- Создайте таблицы
books
иmembers
в вашей базе данных. - Добавьте два новых столбца в таблицу
books
:isbn
(текст, уникальный, максимальная длина 20 символов) иgenre
(текст, максимальная длина 50 символов). - Измените столбец
author
в таблицеbooks
наNOT NULL
и измените тип данныхpublication_year
в таблицеbooks
наTEXT
. - Переименуйте столбец
book_title
в таблицеbooks
наtitle
и переименуйте столбецmember_name
в таблицеmembers
наname
. - Удалите столбец
publication_year
из таблицыbooks
и столбецaddress
из таблицыmembers
. - Удалите таблицу
members
из базы данных.
Вариант 8: База данных бронирования отеля
Вариант 8: База данных бронирования отеля
Сценарий: Вы создаете базу данных для отеля для управления номерами и гостями.
Схемы таблиц:
- Таблица
rooms
:room_id
: Уникальный идентификатор для каждого номера (автоинкрементное целое число, первичный ключ).room_number
: Номер комнаты (текст, уникальный, не null, максимальная длина 10 символов).room_type
: Тип номера (например, ‘Одноместный’, ‘Двухместный’, ‘Люкс’) (текст, максимальная длина 50 символов).capacity
: Максимальная вместимость номера (целое число).price_per_night
: Цена за ночь для номера (десятичное число).
- Таблица
guests
:guest_id
: Уникальный идентификатор для каждого гостя (автоинкрементное целое число, первичный ключ).guest_name
: Имя гостя (текст, не null, максимальная длина 100 символов).email
: Адрес электронной почты гостя (текст, уникальный, максимальная длина 100 символов).phone_number
: Номер телефона гостя (текст, максимальная длина 20 символов).registration_date
: Дата регистрации гостя в системе (временная метка, по умолчанию текущая временная метка).
Задания:
- Создайте таблицы
rooms
иguests
в вашей базе данных. - Добавьте два новых столбца в таблицу
rooms
:is_available
(логическое значение, по умолчанию true) иview_type
(текст, максимальная длина 50 символов, например, ‘Вид на город’, ‘Вид на море’). - Измените столбец
room_type
в таблицеrooms
, чтобы максимальная длина была 75 символов, и измените тип данныхcapacity
в таблицеrooms
наSMALLINT
. - Переименуйте столбец
room_number
в таблицеrooms
наnumber
и переименуйте столбецguest_name
в таблицеguests
наname
. - Удалите столбец
price_per_night
из таблицыrooms
и столбецphone_number
из таблицыguests
. - Удалите таблицу
guests
из базы данных.
Вариант 9: База данных платформы онлайн-курсов
Вариант 9: База данных платформы онлайн-курсов
Сценарий: Вы проектируете базу данных для платформы онлайн-курсов, чтобы управлять курсами и преподавателями.
Схемы таблиц:
- Таблица
courses
:course_id
: Уникальный идентификатор каждого курса (автоинкрементное целое число, первичный ключ).course_name
: Название курса (текст, не null, максимальная длина 100 символов).description
: Описание курса (текст).credits
: Количество кредитов за курс (целое число).level
: Уровень курса (например, ‘Начальный’, ‘Средний’, ‘Продвинутый’) (текст, максимальная длина 50 символов).
- Таблица
instructors
:instructor_id
: Уникальный идентификатор каждого преподавателя (автоинкрементное целое число, первичный ключ).instructor_name
: Имя преподавателя (текст, не null, максимальная длина 100 символов).email
: Адрес электронной почты преподавателя (текст, уникальный, максимальная длина 100 символов).department
: Отдел, к которому принадлежит преподаватель (текст, максимальная длина 100 символов).hire_date
: Дата найма преподавателя (дата).
Задания:
- Создать таблицы
courses
иinstructors
в вашей базе данных. - Добавить два новых столбца в таблицу
courses
:duration_hours
(целое число) иis_active
(логический тип, по умолчанию true). - Изменить столбец
level
в таблицеcourses
, чтобы он имел максимальную длину 75 символов, и изменить тип данныхcredits
в таблицеcourses
наREAL
. - Переименовать столбец
course_name
в таблицеcourses
наtitle
и переименовать столбецinstructor_name
в таблицеinstructors
наname
. - Удалить столбец
description
из таблицыcourses
и столбецdepartment
из таблицыinstructors
. - Удалить таблицу
instructors
из базы данных.
Вариант 10: Простая CRM-база данных
Вариант 10: Простая CRM-база данных
Сценарий: Вы создаете базу данных для простой системы управления взаимоотношениями с клиентами (CRM) для управления клиентами и их взаимодействиями.
Схемы таблиц:
- Таблица
customers
:customer_id
: Уникальный идентификатор каждого клиента (автоинкрементное целое число, первичный ключ).customer_name
: Имя клиента (текст, не null, максимальная длина 100 символов).email
: Адрес электронной почты клиента (текст, уникальный, максимальная длина 100 символов).phone_number
: Номер телефона клиента (текст, максимальная длина 20 символов).city
: Город клиента (текст, максимальная длина 50 символов).
- Таблица
interactions
:interaction_id
: Уникальный идентификатор каждого взаимодействия (автоинкрементное целое число, первичный ключ).interaction_type
: Тип взаимодействия (например, ‘Звонок’, ‘Электронная почта’, ‘Встреча’) (текст, максимальная длина 50 символов).interaction_date
: Дата взаимодействия (метка времени, по умолчанию текущая метка времени).notes
: Заметки о взаимодействии (текст).agent_name
: Имя агента, который обработал взаимодействие (текст, максимальная длина 100 символов).
Задания:
- Создать таблицы
customers
иinteractions
в вашей базе данных. - Добавить два новых столбца в таблицу
customers
:registration_date
(дата, по умолчанию текущая дата) иis_active
(логический тип, по умолчанию true). - Изменить столбец
city
в таблицеcustomers
, чтобы он имел максимальную длину 75 символов, и изменить тип данныхinteraction_date
в таблицеinteractions
наDATE
. - Переименовать столбец
customer_name
в таблицеcustomers
наname
и переименовать столбецinteraction_type
в таблицеinteractions
наtype
. - Удалить столбец
phone_number
из таблицыcustomers
и столбецagent_name
из таблицыinteractions
. - Удалить таблицу
interactions
из базы данных.
Вариант 11: База данных управления сотрудниками
Вариант 11: База данных управления сотрудниками
Сценарий: Вы создаете упрощенную базу данных для управления сотрудниками, отслеживая сотрудников и отделы.
Схемы таблиц:
- Таблица
employees
:employee_id
: Уникальный идентификатор каждого сотрудника (автоинкрементное целое число, первичный ключ).employee_name
: Имя сотрудника (текст, не null, максимальная длина 100 символов).job_title
: Должность сотрудника (текст, максимальная длина 100 символов).salary
: Годовая зарплата сотрудника (числовое значение).hire_date
: Дата приема на работу сотрудника (дата).
- Таблица
departments
:department_id
: Уникальный идентификатор каждого отдела (автоинкрементное целое число, первичный ключ).department_name
: Название отдела (текст, не null, уникальное, максимальная длина 100 символов).location
: Местоположение отдела (текст, максимальная длина 100 символов).manager_name
: Имя руководителя отдела (текст, максимальная длина 100 символов).employee_count
: Количество сотрудников в отделе (целое число, по умолчанию 0).
Задания:
- Создать таблицы
employees
иdepartments
в вашей базе данных. - Добавить два новых столбца в таблицу
employees
:email
(текст, уникальное, максимальная длина 100 символов) иis_active
(логическое значение, по умолчанию true). - Изменить столбец
job_title
в таблицеemployees
, установив максимальную длину 150 символов, и изменить тип данныхsalary
в таблицеemployees
наINTEGER
. - Переименовать столбец
employee_name
в таблицеemployees
наname
и переименовать столбецdepartment_name
в таблицеdepartments
наname
. - Удалить столбец
hire_date
из таблицыemployees
и столбецmanager_name
из таблицыdepartments
. - Удалить таблицу
departments
из базы данных.
Вариант 12: База данных инвентаризации интернет-магазина
Вариант 12: База данных инвентаризации интернет-магазина
Сценарий: Вы создаете упрощенную базу данных для интернет-магазина, чтобы управлять товарами и категориями.
Схемы таблиц:
- Таблица
products
:product_id
: Уникальный идентификатор каждого товара (автоинкрементное целое число, первичный ключ).product_name
: Название товара (текст, не null, максимальная длина 100 символов).description
: Описание товара (текст).price
: Цена товара (десятичное число).stock_quantity
: Количество на складе (целое число, по умолчанию 0).
- Таблица
categories
:category_id
: Уникальный идентификатор каждой категории (автоинкрементное целое число, первичный ключ).category_name
: Название категории (текст, не null, уникальное, максимальная длина 100 символов).parent_category
: Название родительской категории (текст, максимальная длина 100 символов).description
: Описание категории (текст).is_active
: Указывает, активна ли категория в данный момент (логическое значение, по умолчанию true).
Задания:
- Создать таблицы
products
иcategories
в вашей базе данных. - Добавить два новых столбца в таблицу
products
:sku
(текст, уникальное, максимальная длина 50 символов) иweight_kg
(числовое значение). - Изменить столбец
product_name
в таблицеproducts
, установив максимальную длину 150 символов, и изменить тип данныхprice
в таблицеproducts
наREAL
. - Переименовать столбец
product_name
в таблицеproducts
наname
и переименовать столбецcategory_name
в таблицеcategories
наname
. - Удалить столбец
description
из таблицыproducts
и столбецparent_category
из таблицыcategories
. - Удалить таблицу
categories
из базы данных.
Вариант 13: База данных фитнес-трекера
Вариант 13: База данных фитнес-трекера
Сценарий: Вы создаете базу данных для приложения фитнес-трекера, чтобы хранить профили пользователей и данные о тренировках.
Схемы таблиц:
- Таблица
users
:user_id
: Уникальный идентификатор каждого пользователя (автоинкрементное целое число, первичный ключ).username
: Имя пользователя (текст, уникальное, не null, максимальная длина 50 символов).email
: Адрес электронной почты (текст, уникальное, максимальная длина 100 символов).gender
: Пол пользователя (текст, максимальная длина 10 символов).date_of_birth
: Дата рождения (дата).
- Таблица
workouts
:workout_id
: Уникальный идентификатор каждой тренировки (автоинкрементное целое число, первичный ключ).workout_type
: Тип тренировки (например, ‘Бег’, ‘Силовая тренировка’, ‘Йога’) (текст, максимальная длина 50 символов).duration_minutes
: Продолжительность тренировки в минутах (целое число).workout_date
: Дата тренировки (дата, не null, по умолчанию текущая дата).calories_burned
: Предполагаемое количество сожженных калорий (целое число).
Задания:
- Создать таблицы
users
иworkouts
в вашей базе данных. - Добавить два новых столбца в таблицу
users
:height_cm
(целое число) иweight_kg
(числовое значение, точность 5, масштаб 2). - Изменить столбец
gender
в таблицеusers
, установив максимальную длину 20 символов, и изменить тип данныхduration_minutes
в таблицеworkouts
наREAL
. - Переименовать столбец
username
в таблицеusers
наname
и переименовать столбецworkout_type
в таблицеworkouts
наtype
. - Удалить столбец
date_of_birth
из таблицыusers
и столбецcalories_burned
из таблицыworkouts
. - Удалить таблицу
workouts
из базы данных.
Вариант 14: База данных кинотеатра
Вариант 14: База данных кинотеатра
Сценарий: Вы создаете упрощенную базу данных для кинотеатра, чтобы управлять фильмами и сеансами.
Схемы таблиц:
- Таблица
movies
:movie_id
: Уникальный идентификатор каждого фильма (автоинкрементное целое число, первичный ключ).movie_title
: Название фильма (текст, не null, максимальная длина 150 символов).genre
: Жанр фильма (текст, максимальная длина 50 символов).release_year
: Год выпуска (целое число).duration_minutes
: Продолжительность фильма в минутах (целое число).
- Таблица
screenings
:screening_id
: Уникальный идентификатор каждого сеанса (автоинкрементное целое число, первичный ключ).screen_number
: Номер экрана (целое число).start_time
: Время начала сеанса (отметка времени).end_time
: Время окончания сеанса (отметка времени).is_3d
: Указывает, идет ли сеанс в 3D (логическое значение, по умолчанию false).
Задания:
- Создать таблицы
movies
иscreenings
в вашей базе данных. - Добавить два новых столбца в таблицу
movies
:director
(текст, максимальная длина 100 символов) иrating
(текст, максимальная длина 10 символов, например, ‘PG-13’, ‘R’). - Изменить столбец
genre
в таблицеmovies
, установив максимальную длину 75 символов, и изменить тип данныхscreen_number
в таблицеscreenings
наTEXT
. - Переименовать столбец
movie_title
в таблицеmovies
наtitle
и переименовать столбецstart_time
в таблицеscreenings
наstart_datetime
. - Удалить столбец
release_year
из таблицыmovies
и столбецend_time
из таблицыscreenings
. - Удалить таблицу
screenings
из базы данных.
Вариант 15: Социальные сети
Вариант 15: Социальные сети
Сценарий: Вы создаете очень упрощенную базу данных для платформы социальных сетей, чтобы управлять профилями пользователей и сообщениями.
Схемы таблиц:
- Таблица
users
:user_id
: Уникальный идентификатор для каждого пользователя (автоинкрементное целое число, первичный ключ).username
: Имя пользователя (текст, уникальное, не null, максимальная длина 50 символов).profile_name
: Отображаемое имя пользователя (текст, максимальная длина 100 символов).join_date
: Дата регистрации пользователя (дата, по умолчанию текущая дата).bio
: Биография пользователя (текст).
- Таблица
posts
:post_id
: Уникальный идентификатор для каждого сообщения (автоинкрементное целое число, первичный ключ).content
: Содержание сообщения (текст, не null).post_timestamp
: Отметка времени создания сообщения (timestamp, по умолчанию текущая отметка времени).like_count
: Количество лайков (целое число, по умолчанию 0).share_count
: Количество репостов (целое число, по умолчанию 0).
Задачи:
- Создайте таблицы
users
иposts
в вашей базе данных. - Добавьте два новых столбца в таблицу
users
:email
(текст, уникальный, максимальная длина 100 символов) иis_verified
(логический тип, по умолчанию false). - Измените столбец
profile_name
в таблицеusers
, чтобы он имел максимальную длину 150 символов, и измените тип данныхlike_count
в таблицеposts
наBIGINT
. - Переименуйте столбец
username
в таблицеusers
вname
и переименуйте столбецpost_timestamp
в таблицеposts
вcreated_at
. - Удалите столбец
bio
из таблицыusers
и столбецshare_count
из таблицыposts
. - Удалите таблицу
posts
из базы данных.
Вариант 16: Простая база данных для отслеживания проектов
Вариант 16: Простая база данных для отслеживания проектов
Сценарий: Вы создаете базу данных для отслеживания простых проектов и их задач.
Схемы таблиц:
- Таблица
projects
:project_id
: Уникальный идентификатор для каждого проекта (автоинкрементное целое число, первичный ключ).project_name
: Название проекта (текст, не null, максимальная длина 100 символов).start_date
: Дата начала проекта (дата).deadline
: Крайний срок проекта (дата).status
: Текущий статус проекта (например, ‘Планирование’, ‘В процессе’, ‘Завершен’) (текст, максимальная длина 50 символов, по умолчанию ‘Планирование’).
- Таблица
tasks
:task_id
: Уникальный идентификатор для каждой задачи (автоинкрементное целое число, первичный ключ).task_description
: Описание задачи (текст, не null).due_date
: Срок выполнения задачи (дата).is_completed
: Указывает, завершена ли задача (логический тип, по умолчанию false).priority
: Приоритет задачи (например, ‘Высокий’, ‘Средний’, ‘Низкий’) (текст, максимальная длина 50 символов, по умолчанию ‘Средний’).
Задачи:
- Создайте таблицы
projects
иtasks
в вашей базе данных. - Добавьте два новых столбца в таблицу
projects
:budget
(десятичное число) иteam_lead
(текст, максимальная длина 100 символов). - Измените столбец
status
в таблицеprojects
, чтобы он имел максимальную длину 75 символов, и измените тип данныхdeadline
в таблицеprojects
наTIMESTAMP
. - Переименуйте столбец
project_name
в таблицеprojects
вname
и переименуйте столбецtask_description
в таблицеtasks
вdescription
. - Удалите столбец
start_date
из таблицыprojects
и столбецpriority
из таблицыtasks
. - Удалите таблицу
tasks
из базы данных.
Вариант 17: Интернет-форум
Вариант 17: Интернет-форум
Сценарий: Вы создаете упрощенную базу данных для интернет-форума, чтобы управлять пользователями и темами обсуждений.
Схемы таблиц:
- Таблица
users
:user_id
: Уникальный идентификатор каждого пользователя (автоинкрементное целое число, первичный ключ).username
: Имя пользователя (текст, уникальное, не null, максимальная длина 50 символов).registration_date
: Дата регистрации (метка времени, по умолчанию текущая метка времени).reputation_score
: Рейтинг репутации пользователя (целое число, по умолчанию 0).is_banned
: Указывает, заблокирован ли пользователь (логическое значение, по умолчанию false).
- Таблица
threads
:thread_id
: Уникальный идентификатор каждой темы (автоинкрементное целое число, первичный ключ).thread_title
: Заголовок темы (текст, не null, максимальная длина 200 символов).creation_date
: Дата создания темы (метка времени, по умолчанию текущая метка времени).view_count
: Количество просмотров темы (целое число, по умолчанию 0).last_activity_date
: Дата последней активности в теме (метка времени, по умолчанию текущая метка времени).
Задания:
- Создайте таблицы
users
иthreads
в вашей базе данных. - Добавьте два новых столбца в таблицу
users
:email
(текст, уникальный, максимальная длина 100 символов) иlocation
(текст, максимальная длина 100 символов). - Измените столбец
username
в таблицеusers
, установив максимальную длину 75 символов, и измените тип данных столбцаview_count
в таблицеthreads
наBIGINT
. - Переименуйте столбец
username
в таблицеusers
наname
и переименуйте столбецthread_title
в таблицеthreads
наtitle
. - Удалите столбец
reputation_score
из таблицыusers
и столбецlast_activity_date
из таблицыthreads
. - Удалите таблицу
threads
из базы данных.
Вариант 18: Простая база данных списка дел
Вариант 18: Простая база данных списка дел
Сценарий: Вы создаете базу данных для очень простого приложения списка дел.
Схемы таблиц:
- Таблица
todos
:todo_id
: Уникальный идентификатор каждого элемента списка дел (автоинкрементное целое число, первичный ключ).task_name
: Название задачи (текст, не null, максимальная длина 100 символов).description
: Описание задачи (текст).due_date
: Срок выполнения задачи (дата).is_completed
: Указывает, завершена ли задача (логическое значение, по умолчанию false).
- Таблица
categories
:category_id
: Уникальный идентификатор каждой категории (автоинкрементное целое число, первичный ключ).category_name
: Название категории (текст, не null, уникальное, максимальная длина 100 символов).color_code
: Цветовой код категории (текст, максимальная длина 10 символов, например, ‘#FF0000’).created_at
: Метка времени создания категории (метка времени, по умолчанию текущая метка времени).is_default
: Указывает, является ли категория категорией по умолчанию (логическое значение, по умолчанию false).
Задания:
- Создайте таблицы
todos
иcategories
в вашей базе данных. - Добавьте два новых столбца в таблицу
todos
:priority
(текст, максимальная длина 20 символов, например, ‘High’, ‘Medium’, ‘Low’) иcreated_at
(метка времени, по умолчанию текущая метка времени). - Измените столбец
task_name
в таблицеtodos
, установив максимальную длину 150 символов, и измените тип данных столбцаdue_date
в таблицеtodos
наTIMESTAMP
. - Переименуйте столбец
task_name
в таблицеtodos
наtitle
и переименуйте столбецcategory_name
в таблицеcategories
наname
. - Удалите столбец
description
из таблицыtodos
и столбецcolor_code
из таблицыcategories
. - Удалите таблицу
categories
из базы данных.
Инструкции по сдаче
1. Выполните задания:
- Для выбранного вами варианта выполните все описанные задачи. Это включает в себя написание и выполнение SQL-команд в pgAdmin 4 с использованием PostgreSQL.
2. Задокументируйте свою работу в Google Документе:
- Создайте новый Google Документ. образец
- В верхней части документа четко напишите:
- Ваше имя:
- Номер варианта: (например, Вариант 1: База данных интернет-магазина книг)
- Для каждой задачи в рамках варианта задокументируйте следующее:
- Номер задачи: (например, Задача 1, Задача 2, Задача 3 и т.д.)
- SQL-команда: Скопируйте и вставьте точную SQL-команду, которую вы выполнили в pgAdmin 4 для этой задачи.
- Подтверждение/Скриншот: Включите скриншот из pgAdmin 4 (показывающий созданную таблицу в Object Browser), чтобы визуально подтвердить успешное выполнение вашей команды.
3. Отправьте ссылку на ваш Google Документ:
- После того как вы закончите документировать все задачи для выбранного вами варианта в своем Google Документе, убедитесь, что документ открыт для доступа, чтобы ваш преподаватель мог получить к нему доступ. Важно: Установите разрешения на совместный доступ: “Всем, у кого есть ссылка, разрешено комментировать”.
- Перейдите к Google Таблице, предоставленной вашим преподавателем для сдачи заданий. Google Таблица
- Найдите столбец, соответствующий вашему имени.
- В соответствующую ячейку для этого задания по базе данных вставьте ссылку для совместного доступа к вашему Google Документу.
