Практическая работа № 2.
Реляционные базы данных.
Цель работы: Получить понятие о реляционных базах данных и их возможностях.
Ход работы.
Разделение данных на несколько таблиц.
Откройте базу данных, в которой уже имеется одна таблица под названием Страны Европы, состоящую из 20 записей.
Создайте таблицу Религии при конструктора таблиц с полями:
Поле Код религии сделайте ключевым.
Создайте таблицу Строй при конструктора таблиц с полями:
Поле Код строя сделайте ключевым.
Заполните эти таблицы (таким образом, напротив каждой религии и каждого строя будет стоять его код).
Откройте таблицу Страны Европы и замените названия в полях Строй и Религия на соответствующие им коды в ранее созданных таблицах.
Откройте таблицу Страны Европы в режиме конструктора и для полей Строй и Религия заменит тип данных на числовой.
Установление связей между двумя таблицами.
Выполните команду Схема данных из меню Работа с базами данных.
В диалоговом окне добавления таблиц добавьте все три таблицы.
На поле Код религии таблицы Религии нажмите левую клавишу мыши и удерживая ее перетащите на поле Религия таблицы Страны Европы. В появившемся диалоговом окне необходимо установить нужную связь флажок напротив опции обеспечение целостности данных. Это означает, что перед тем как занести данные в подчиненную таблицу, программа будет проверять их на соответствие главной (таблица Страны Европы является подчиненной для таблицы Религии). Установите флажок напротив опции каскадное обновление связанных полей, это означает, что изменения в главной таблице автоматически будут влиять на подчиненную. Установите флажок напротив опции каскадное удаление связанных записей, это означает, что записи удаленные в главной таблице автоматически будут удалены в подчиненной таблице.
Аналогичную операцию проделайте с таблицами Страны Европы и Строй.
Закройте схему с сохранением.
Сохраните базу данных.
вот удачи))
class Person(object):
def __init__(self, name = 'Bob', age = 25): #Значения по умолчанию заданы в конструкторе
self._name = name
self._age = age
@property
def name(self): #Свойство, возвращающее значение obj._name
return self._name
@property
def age(self): #Свойство, возвращающее значение obj._age
return self._age
def say_hi(self): #Рандомный метод
print(f'Hi, im {self._name}, im {self._age} yo')
def set_age(self, value): #Метод для изменения значения свойства obj._age
if value in range(1, 101):
self._age = value
else: raise RuntimeError('Bad Argument', f'Cant set age {value}, age must be in range [1, 100]')
Объяснение:
Второй класс попробуй реализовать сам