Базы данных. Реляционная модель данных

План:
1 Особенности реляционной модели данных.
2 ограничения целостности
3 Основы реляционной алгебры.
4 Типы взаимосвязей.

Реляционная модель данных

Реляционная модель основана на математическом понятии отношения,
физическим представлением которого является таблица.

Реляционная модель данных (РМД) – это модель, в которой
данные можно представить в виде отношений, изменяющихся во
времени. Традиционно в реляционных системах отношением
называют таблицу, кортежем – строку таблицы, а атрибутом –
столбец. При этом атрибуты имеют уникальные имена в рамках
одного отношения.

Читать далее
Рубрика: SQL | Оставить комментарий

Базы данных. Терминология

План:
1 О курсе Баз данных
2 Общая терминология курса
3 Типы моделей данных
4 Терминология таблиц
5 На примере Access
6 Типы первичных ключей

Читать далее
Рубрика: SQL | Оставить комментарий

Хронологическая шкала.

Чтобы говорить о том, что и почему происходит здесь и сейчас, (сейчас — понятие относительное — имеются ввиду последние 10 тысяч лет) нужно разобраться, хотя бы приблизительно, с тем, что же всё таки было до.

А для того, чтобы не запутаться во времени нужно вначале разобраться со временем, то есть с хронологией. А точнее с его условно выделенными, палеонтологами, временными единицами. Эонами, эрами, периодами и эпохами. Иногда вместо эры пишут эпохи — но это неверно, эпоха является единицей меньше периода, а эра больше. И тут лучше взять картинку или даже три и начать с наглядного материала.

Читать далее
Рубрика: История | Оставить комментарий

javascript 2.4.8 Дата. Разбор строки

Разбор строки с датой

Метод Date.parse(str) считывает дату из строки.

Формат строки должен быть следующим: YYYY-MM-DDTHH:mm:ss.sssZ, где:

  • YYYY-MM-DD – это дата: год-месяц-день.
  • Символ "T" используется в качестве разделителя.
  • HH:mm:ss.sss – время: часы, минуты, секунды и миллисекунды.
  • Необязательная часть 'Z' обозначает часовой пояс в формате +-hh:mm. Если указать просто букву Z, то получим UTC+0.

Возможны и более короткие варианты, например, YYYY-MM-DD или YYYY-MM, или даже YYYY.

Читать далее
Рубрика: javascript | Оставить комментарий

javascript 2.4.7 Дата. Автоисправление. Бенмаркинг

Автоисправление даты

Автоисправление – это очень полезная особенность объектов Date. Можно устанавливать компоненты даты вне обычного диапазона значений, а объект сам себя исправит.

Пример:

let date = new Date(2013, 0, 32); // 32 Jan 2013 ?!?
alert(date); // ...1st Feb 2013!
Читать далее
Рубрика: Без рубрики | Оставить комментарий

javascript 2.4.6 Дата и время. Создание и компоненты

Встречайте новый встроенный объект: Date. Он содержит дату и время, а также предоставляет методы управления ими.

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

Создание

Для создания нового объекта Date нужно вызвать конструктор new Date() с одним из следующих аргументов:new Date()

Читать далее
Рубрика: Без рубрики | Оставить комментарий

javascript 2.4.5 Object.keys, values, entries

Давайте отойдём от отдельных структур данных и поговорим об их переборе вообще.

В предыдущей главе мы видели методы map.keys()map.values()map.entries().

Это универсальные методы, и существует общее соглашение использовать их для структур данных. Если бы мы делали собственную структуру данных, нам также следовало бы их реализовать.

Читать далее
Рубрика: javascript | Оставить комментарий

javascript 2.4.4 Клавиатура: Действия по умолчанию

Автоповтор

При долгом нажатии клавиши возникает автоповтор: keydown срабатывает снова и снова, и когда клавишу отпускают, то отрабатывает keyup. Так что ситуация, когда много keydownи один keyup, абсолютно нормальна.

Для событий, вызванных автоповтором, у объекта события свойство event.repeat равно true.

Читать далее
Рубрика: javascript | Оставить комментарий

javascript 2.4.3 Клавиатура: keydown и keyup

Прежде чем перейти к клавиатуре, обратите внимание, что на современных устройствах есть и другие способы «ввести что-то». Например, распознавание речи (это особенно актуально на мобильных устройствах) или Копировать/Вставить с помощью мыши.

Поэтому, если мы хотим корректно отслеживать ввод в поле <input>, то одних клавиатурных событий недостаточно. Существует специальное событие input, чтобы отслеживать любые изменения в поле <input>. И оно справляется с такой задачей намного лучше. Мы рассмотрим его позже в главе События: change, input, cut, copy, paste.

События клавиатуры же должны использоваться, если мы хотим обрабатывать взаимодействие пользователя именно с клавиатурой (в том числе виртуальной). К примеру, если нам нужно реагировать на стрелочные клавиши Up и Down или горячие клавиши (включая комбинации клавиш).

Читать далее
Рубрика: javascript | Оставить комментарий

javascript 2.4.2 Вычисленные стили и единицы измерения

Следите за единицами измерения

Не забудьте добавить к значениям единицы измерения.

Например, мы должны устанавливать 10px, а не просто 10 в свойство elem.style.top. Иначе это не сработает:

<body>
  <script>
    // не работает!
    document.body.style.margin = 20;
    alert(document.body.style.margin); // '' (пустая строка, присваивание игнорируется)

    // сейчас добавим единицу измерения (px) - и заработает
    document.body.style.margin = '20px';
    alert(document.body.style.margin); // 20px

    alert(document.body.style.marginTop); // 20px
    alert(document.body.style.marginLeft); // 20px
  </script>
</body>

Пожалуйста, обратите внимание, браузер «распаковывает» свойство style.margin в последних строках и выводит style.marginLeft и style.marginTop из него.

Читать далее
Рубрика: javascript | Оставить комментарий