В чем разница между схемой, таблицей и базой данных?

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

13 ответов


- схемы : база данных : таблица :: план этажа : дома : комната


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

A таблица - это структура с кучей строк (она же "кортежи"), каждый из которых имеет атрибуты, определенные схемой. Таблицы могут также иметь индексы для помощи в поиск значений в определенных столбцах.

A база данных - это, формально, любой сбор данных. В этом контексте база данных будет представлять собой набор таблиц. А СУБД (система управления базами данных) - это программное обеспечение (например, MySQL, SQL Server, Oracle и т. д.), которое управляет и запускает базу данных.


в двух словах, схема-это определение для всей базы данных, поэтому она включает в себя таблицы, представления, хранимые процедуры, индексы, первичные и внешние ключи, и т. д.


было показано, что эта конкретная публикация относится только к Oracle, и определение схемы изменяется, когда в контексте другой БД.

вероятно, что-то вроде просто google, но термины FYI, похоже, различаются в своих определениях, что является самой раздражающей вещью:)

в Oracle база данных является базой данных. В вашей голове подумайте об этом как о файлах данных и журналах повтора и фактическом физическом присутствии на диске самой базы данных (т. е. не пример)

схема фактически является пользователем. Более конкретно, это набор таблиц / процессов / индексов и т. д., принадлежащих пользователю. Другой пользователь имеет другую схему (таблицы, которыми он владеет), однако пользователь также может видеть любые схемы, на которых они выбрали priviliedges. Таким образом, база данных может состоять из сотен схем, а каждая схема-из сотен таблиц. Вы можете иметь таблицы с одинаковым именем в разных схемах, которые находятся в той же базе.

таблица-это таблица, набор строк и столбцы, содержащие данные и содержащиеся в схемах.

определения могут отличаться в SQL Server, например. Я этого не знаю.


схема ведет себя как родительский объект, как видно в мире ООП. так что это не сама база данных. может быть!--1-->этой ссылке полезно.

но, в MySQL, эти два эквивалентны. База данных ключевых слов или базы данных может быть заменен схемой или схемами везде, где он появляется. Примеры:

  • СОЗДАТЬ БАЗУ ДАННЫХ СОЗДАТЬ СХЕМУ
  • ПОКАЗАТЬ БАЗЫ ДАННЫХ ПОКАЗАТЬ СХЕМЫ

документация В MySQL

термины схемы и базы данных зависят от СУБД.

A стол - это набор элементов данных (значений), организованный с использованием модели вертикальных столбцов (которые идентифицируются по их названию) и горизонтальных строк. База данных содержит один или несколько(обычно) таблицы . И вы храните свои данные в этих таблицах. Таблицы могут быть связаны друг с другом(посмотреть здесь).


подробнее о схемах:

в SQL 2005 схема-это способ группировки объектов. Это контейнер, в который можно класть предметы. Люди могут владеть этим объектом. Вы можете предоставить права на схему.

в 2000 году схема была эквивалентна пользователей. Теперь он вырвался на свободу и весьма полезен. Вы можете бросить все свои пользовательские процессы в определенную схему, а ваши административные процессы в другую. Предоставьте EXECUTE соответствующему Пользователю / роли, и вы закончите с предоставлением EXECUTE на конкретном процедуры. Милый.

точечная нотация будет выглядеть так:

сервер.База данных.Схема.Объект

или

myserver01.Данных AdventureWorks.Учет.Бобы!--1-->


A Schema - Это коллекция объектов базы данных, которая также включает логические структуры. У него есть имя пользователя, которому он принадлежит. А database может иметь любое количество схемы. Одна таблица из базы данных может отображаться в двух разных схемах с одинаковым именем. Пользователь может просмотреть любую схему, для которой ему назначена привилегия select.


в схеме oracle один пользователь находится под одной базой данных, например scott - одна схема в базе данных orcl. В одной базе данных у нас может быть много схем, таких как scott


Как прекрасно выразился MusiGenesis, в большинстве баз данных:

схема: база данных: таблица:: план этажа : дом: комната

но в Oracle может быть проще думать о:

схема: база данных: таблица:: владелец : дом: комната


схемы содержат базы данных.

базы данных являются частью схемы.

Итак, схемы > базы данных.

схемы содержат представления, хранимые процедуры,базы данных, триггеры и т. д.


схема не является планом для всей базы данных. Это план / контейнер для подмножества объектов (ex.таблицы) внутри базы данных.

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

тем не менее, я не уверен, что вы можете иметь одну таблицу под несколькими схемами. Этот Пользовательский интерфейс Management Studio предоставляет раскрывающийся список для назначения схемы таблице и, следовательно, позволяет выбрать только одну схему. Я думаю, если вы сделаете это с TSQL, он может создать 2 (или несколько) разных объекта с разными идентификаторами объектов.


база данных - схемы - это способ логически группировать объекты, такие как таблицы, представления, хранимые процедуры и т. д. Представьте себе схему как контейнер объектов. А таблицы-это коллекции строк и столбцов. комбинация всех таблиц делает db.


вопреки некоторым из приведенных выше ответов, вот мое понимание, основанное на опыте с каждым из них:

  • MySQL:database/schema :: table
  • SQL Server:database :: (schema/namespace ::) table
  • Oracle:database/schema/user :: (tablespace ::) table

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