Giter Club home page Giter Club logo

db_exam_2024's Introduction

Тестовая база данных для реляционных запросов

  1. db_diagram.svg - схема БД
  2. db_create_postgre.sql - скрипт для создания таблиц и начального заполнения таблиц в PostgreSQL
  3. db_populate_postgre.sql - скрипт для заполнения таблиц в PostgreSQL
  4. db_drop_postgre.sql - скрипт для удаления таблиц в PostgreSQL

Предметная область:

Векторное каркасное трехмерное моделирование с ограничениями

Пользователи работают с трехмерными каркасными моделями.

Каждый пользователь может создавать модели, редактировать их, а также определять права доступа других пользователей к созданным им моделям на просмотр и редактирование

Каждая каркасная модель состоит из совокупности плоских чертежей, т.е. для чертежа обязательно задается некоторая плоскость.

Каждая плоскость определяется точкой и упорядоченнной парой ортонормированных векторов в трехмерном пространстве, задающих на данной плоскости декартову прямоугольную систему координат. При этом для идентификации плоскости могут быть использовано либо начало координат, либо точка, входящая в состав какого либо чертежа из состава модели.

На плоскости могут располагаться несколько чертежей.

Каждый чертеж содержит примитивы - точки, отрезки, окружности и др. Каждый нетривиальный (т.е. отличный от точки) примитив или объект определяется упорядоченным набором точек и, возможно, дополнительными параметрами (например, радиус для окружности). Для каждого из типов объектов известно количество степеней свободы - как общее количество параметров, с помощью которых можно однозначно задать данный примитив. Точки, входящие в состав чертежа, определяются своими двумерными декартовыми координатами в системе координат плоскости чертежа. Поддерживаются следующие типы примитивов:

  • Точка
  • Отрезок
  • Окружность
  • Дуга окружности

Относительно примитивов, составляющих чертеж, могут быть рассмотрены ограничения (например, отрезок доложен быть вертикальным, окружности могут быть концентрическими и т.д.).

Поддерживаются следующие базовые типы ограничений:

  • Неподвижность
  • Равенство
  • Вертикальность
  • Горизонтальность
  • Параллельность
  • Перпендикулярность
  • Касание
  • Принадлежность
  • Середина
  • Коллинеарность
  • Симметричность
  • Концентричность
  • Равноудаленность от точки

Кроме простых ограничений, рассматриваются параметрические ограничения, т.е. такие, которые определяются с помощью дополнительного параметра (например, отрезок должен иметь указанную длину):

  • Размер
  • Расстояние
  • Угол

Данные:

  • Сущность Пользователь (user) идентифицируется целым числом и содержит информацию об имени пользователя.

  • Сущность Модель (model) идентифицируется целым числом и содержит информацию о пользователе, создавшем модель, пользователе, последним изменившем модель и времени последнего обновления.

  • Сущность Список доступа (access_list) определяет доступность для пользователя той или иной модели, учитывая возможность как чтения, так и модификации.

  • Сущность Плоскость (plane) в составе модели идентифицируется целым числом и содержит информацию о точке и базисе, определяющем данную плоскость.

  • Сущность Чертеж (sketch) в составе модели идентифицируется целым числом и содержит информацию о плоскости чертежа.

  • Сущность Параметр (param) в составе модели идентифицируется целым числом и содержит информацию о величине параметра, характеризующего (возможно частично) некоторый примитив.

  • Сущность Примитив (entity) в составе модели идентифицируется целым числом. Примитивами являются как объекты, так и ограничения.

  • Сущность Объект (object) в составе модели идентифицируется целым числом и содержит информацию о типе объекта. Для точек, с помощью которых задаются более сложные объекты, должен быть указан родительский объект. Точки могут быть и вполне обособленными.

  • Сущность Ограничение (constraint) в составе модели идентифицируется целым числом и содержит информацию о примитивах, связываемых данным ограничением, а также, в зависимости от типа ограничения, о значении параметра, его характеризующего.

Общие ограничения целостности:

При задании плоскостей, проходящих через начало координат внешний ключ на точку будет неопределенным. Каждый примитив должен располагаться на каком либо одном чертеже. Точки, определяющие объект, должны располагаться на том же чертеже, что и сам объект. Объекты могут быть связаны произвольным количеством ограничений. При этом ограничения могут связывать объекты, расположенные на чертежах, чья базовая плоскость совпадает. Каждое ограничение обязательно связано с каким либо объектом. Параметры ограничений могут быть только положительными вещественными значениями.

db_exam_2024's People

Contributors

almostinf avatar 77maxikov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.