background preloader

Базы данных

Facebook Twitter

Базы знаний. Часть 1 — введение. Одной из причин слабого использования Linked Data-баз знаний в обычных, ненаучных приложениях является то, что мы не привыкли придумывать юзкейсы, видя перед собой только данные.

Базы знаний. Часть 1 — введение

Трудно спорить с тем, что сейчас в России производится крайне мало взаимосвязанных данных. Однако это не значит, что разработчик, создающий приложение для русскоязычной аудитории совсем уж отрезан от мира семантического веба: кое-что всё-таки у нас есть. Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia, Freebase и Wikidata. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса. Эта статья — первая из цикла Базы знаний. Городах, страны, исторические данные Поиск.

Руководство по проектированию реляционных баз данных (14-15 часть из 15) [перевод] Продолжение.

Руководство по проектированию реляционных баз данных (14-15 часть из 15) [перевод]

Предыдущие части: 1-3, 4-6, 7-9, 10-13Продолжение. Каскадное удаление данных. 14. Другой пример: база данных интернет-магазина. Вы познакомились, я надеюсь, с основными концепциями создания баз данных и теперь вы можете спроектировать простую реляционную базу данных. Система интернет-магазина. Для того, чтобы получить представление о данных, которые будут использоваться, давайте обозначим задачи, которые должен выполнять интернет-магазин.Отображение товаровКлассификация товаровРегистрация клиентовДобавление товаров в корзину покупокОтображение содержимого корзины покупокОформление заказов посетителямиИ т.д. Определяем сущности и отношения. Из списка задач мы можем вывести сущности, которые имеют важные роли в нашей системе.

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

Дополнение к циклу переведенных статей.

Руководство по проектированию реляционных баз данных. Каскадное удаление данных

Статьи: 1-3, 4-6, 7-9, 10-13, 14-15 Информация в статье относится к 5-й части руководства. В комментариях один из пользователей небеспричинно упрекнул в отсутствии информации о каскадном удалении данных. Восполняю пробел. У автора статей нет информации на эту тему, поэтому я написал небольшую статью об этом. Введение. Если отталкиваться от обывательской позиции человека, который разрабатывает базы данных, то внешние ключи – это удобно и упрощает жизнь (в большинстве случаев, всегда есть исключения.). Ближе к сути. О внешних ключах было рассказано в переводах, останавливаться не буду на этом.

В случае, если не знать теории, следить за связями данных придется самостоятельно. У нас есть какие-то вещи. Пусть это часть наших вещей, остальные не рассматриваем: книга 1книга 2книга 3компьютерная мышкаклавиатураручка степлер Определяем для себя, что: Мы создаем две таблицы в базе данных: categories (категории) и stuff(вещи). Categories (категории) Руководство по проектированию реляционных баз данных (10-13 часть из 15) [перевод] Руководство по проектированию реляционных баз данных (7-9 часть из 15) [перевод] Продолжение.

Руководство по проектированию реляционных баз данных (7-9 часть из 15) [перевод]

Предыдущие части: 1-3, 4-6 7. Связь один-ко-многим. Я уже показал вам как данные из разных таблиц могут быть связаны при помощи связи по внешнему ключу. Вы видели как заказы связываются с клиентами путем помещения customer_id в качестве внешнего ключа в таблице заказов. Другой пример связи один-ко-многим – это связь, которая существует между матерью и ее детьми. (Технически лучше говорить о женщине и ее детях вместо матери и ее детях потому, что, в контексте связи один-ко-многим, мать может иметь 0, 1 или множество потомков, но мать с 0 детей не может считаться матерью. Когда одна запись в таблице А может быть связана с 0, 1 или множеством записей в таблице B, вы имеете дело со связью один-ко-многим.

Руководство по проектированию реляционных баз данных (4-6 часть из 15) [перевод] Выкладываю продолжение перевода цикла статей для новичков.

Руководство по проектированию реляционных баз данных (4-6 часть из 15) [перевод]

В настоящих и последующих — больше информации по существу. Начало — здесь. Как вы уже знаете из прошлых частей, данные хранятся в таблицах, которые содержат строки или по-другому записи. Ранее я приводил пример таблицы, содержащей информацию об уроках. Давайте снова на нее взглянем. В таблице имеются 6 уроков. Первичные ключи в повседневной жизни В базе данных первичные ключи используются для идентификации. Несколько примеров Что объединяет эти примеры? Что характеризует первичный ключ? Первичный ключ служит для идентификации записей. Первичный ключ используется для идентификации записей в таблице, для того, чтобы каждая запись стала уникальной. Первичный ключ уникален. Первичный ключ всегда имеет уникальное значение.

. | first_name | last_name | | vasya |pupkin | | vasya |pupkin | Хранение деревьев в базе данных. Часть первая, теоретическая. Полгода назад написал бандл ClosureTable для фреймворка Laravel 3.

Хранение деревьев в базе данных. Часть первая, теоретическая

Поводом для написания стала вот эта замечательная презентация Билла Карвина о способах хранения и обработки иерархических данных в MySQL с использованием PHP. Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур: Adjacency List («список смежности»)Materialized Path («материализованный путь»)Nested Sets («вложенные множества»)Closure Table («таблица связей») Что такое Closure Table Суть данного шаблона проектирования заключается в том, что связи между сущностями хранятся в отдельной таблице, тогда как основная таблица содержит только данные самих сущностей.

Таблица связей должна содержать как минимум два поля: ссылку на предка (ancestor)ссылку на потомка (descendant) Пусть мы работаем над созданием очередной SuperPuper CMS и приступили к разработке модуля редактирования текстовых страниц. Схема таблиц БД В качестве примера используем следующую иерархию страниц: Руководство по проектированию реляционных баз данных [перевод]