В чем разница между схемой, таблицей и базой данных?
Это, вероятно, n00blike (или хуже) вопрос. Но я всегда рассматривал схему как определение таблицы в базе данных. Это неправильно или не совсем правильно. Я не помню много из моих курсов базы данных.
13 ответов:
A связь-схемы - это логическое определение таблицы он определяет, что имя таблицы и имя и тип каждого столбца. Это как план или чертеж. А схемы базы данных - это коллекция схем отношений для всей базы данных.
A таблица представляет собой структуру с кучей строк (он же "кортежи"), каждый из которых имеет атрибуты, определенные схемой. Таблицы могут также иметь индексы на них, чтобы помочь в поиск значений по определенным столбцам.
A база данных - это, формально, любой сбор данных. В этом контексте база данных будет представлять собой набор таблиц. А СУБД (система управления базами данных) - это программное обеспечение (например, MySQL, SQL Server, Oracle и т. д.), которое управляет и запускает базу данных.
в двух словах схема является определением для всей базы данных, поэтому она включает таблицы, представления, хранимые процедуры, индексы, первичные и внешние ключи и т. д.
было показано, что эта конкретная публикация относится только к Oracle и определение изменений схемы, когда в контексте другой БД.
вероятно, что-то вроде просто google, но термины FYI, похоже, различаются в своих определениях, что является самой раздражающей вещью :)
в Oracle база данных-это база данных. В вашей голове подумайте об этом как о файлах данных и журналах повтора и фактическом физическом присутствии на диске самой базы данных (т. е. не пример)
схема фактически является пользователем. Более конкретно, это набор таблиц / процессов / индексов и т. д., принадлежащих пользователю. Другой пользователь имеет другую схему (таблицы, которыми он владеет), однако пользователь также может видеть любые схемы, которые они выбрали priviliedges. Таким образом, база данных может состоять из сотен схем, а каждая схема-из сотен таблиц. Вы можете иметь таблицы с одинаковым именем в разных схемах, которые находятся в той же базе.
таблица-это таблица, набор строк и столбцы, содержащие данные и содержащиеся в схемах.
определения могут отличаться в SQL Server, например. Я этого не знаю.
схема ведет себя как родительский объект, как видно в мире ООП. так что это не сама база данных. может быть этой ссылке полезно.
но, в MySQL, эти два эквивалентны. База данных ключевых слов или базы данных может быть заменен схемой или схемами, где бы он ни появился. Примеры:
- СОЗДАТЬ БАЗУ ДАННЫХ СОЗДАТЬ СХЕМУ
- ПОКАЗАТЬ БАЗЫ ДАННЫХ ПОКАЗАТЬ СХЕМЫ
термины схемы и базы данных являются чем-то зависимым от СУБД.
A стол - это набор элементов данных (значений), организованный с использованием модели вертикальных столбцов (которые идентифицируются по их названию) и горизонтальных строк. База данных содержит один или несколько(обычно) таблицы . И вы храните свои данные в этих таблицах. Таблицы могут быть связаны друг с другом(посмотреть здесь).
подробнее о схемах:
в SQL 2005 схема-это способ группировки объектов. Это контейнер, в который можно помещать объекты. Люди могут владеть этим объектом. Вы можете предоставить права на схему.
в 2000 году схема была эквивалентна пользователей. Теперь он вырвался на свободу и весьма полезен. Вы можете бросить все свои пользовательские процессы в определенную схему, а ваши административные процессы в другую. Предоставьте EXECUTE соответствующему Пользователю / роли, и вы закончите с предоставлением EXECUTE на определенном процедуры. Милый.
точечная нотация будет выглядеть так:
сервер.База данных.Схема.Объект
или
myserver01.Данных AdventureWorks.Учет.Бобы
A
Schema
- Это коллекция объектов базы данных, которая также включает логические структуры. Он имеет имя пользователя, который владеет им. Аdatabase
может иметь любое количество схемы. Одна таблица из базы данных может отображаться в двух разных схемах с одинаковыми именами. Пользователь может просматривать любую схему, для которой ему назначена привилегия select.
в схеме oracle есть один пользователь в одной базе данных, например scott-одна схема в базе данных orcl. В одной базе данных у нас может быть много схем, таких как scott
Как красиво выразился MusiGenesis, в большинстве баз данных:
схема: база данных: таблица :: план этажа: дом: комната
но, в Oracle это может быть проще думать:
схема: база данных: таблица:: владелец: дом: комната
схемы содержат базы данных.
базы данных являются частью схемы.
Итак, схемы > базы данных.
схемы содержит представления, хранимые процедуры(ов), базы данных(ы), триггер(Ы) и т. д.
схема не является планом для всей базы данных. Это план / контейнер для подмножества объектов (например.таблицы) внутри базы данных.
это означает, что вы можете иметь несколько объектов(например. таблицы) внутри одной базы данных, которые не обязательно подпадают под одну и ту же функциональную категорию. Таким образом, вы можете группировать их по различным схемам и предоставлять им различные права доступа пользователей.
тем не менее, я не уверен, что вы можете иметь одну таблицу под несколькими схемами. Этот Пользовательский интерфейс Management Studio предоставляет раскрывающийся список для назначения схемы таблице и, следовательно, позволяет выбрать только одну схему. Я думаю, если вы сделаете это с TSQL, он может создать 2 (или несколько) разных объектов с разными идентификаторами объектов.
база данных - схемы - это способ логически группировать объекты, такие как таблицы, представления, хранимые процедуры и т. д. Представьте себе схему как контейнер объектов. А таблицы-это коллекции строк и столбцов. комбинация всех таблиц составляет БД.
вопреки некоторым из приведенных выше ответов, вот мое понимание, основанное на опыте работы с каждым из них:
- MySQL:
database/schema :: table
- SQL Server:
database :: (schema/namespace ::) table
- Oracle:
database/schema/user :: (tablespace ::) table
пожалуйста, поправьте меня, является ли табличное пространство необязательным или нет с Oracle, прошло много времени с тех пор, как я помню их использование.