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

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

+141
источник поделиться
16 ответов

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

+228
источник

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

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

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

+114
источник

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

+16
источник

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

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

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

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

Таблица представляет собой таблицу, набор строк и столбцов, содержащих данные и содержащихся в схемах.

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

+11
источник

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

Но в MySQL они эквивалентны. Ключевое слово DATABASE или DATABASES может быть заменен SCHEMA или SCHEMAS, где бы он ни появлялся. Примеры:

  • CREATE DATABASE <= > CREATE SCHEMA
  • SHOW DATABASES <= > SHOW SCHEMAS

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

SCHEMA и DATABASE термины зависят от СУБД.

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

+11
источник

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

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

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

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

Server.Database.Schema.Object

или

myserver01.Adventureworks.Accounting.Beans

+2
источник

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

+2
источник

концепция схемы отличается в разных программах db.

здесь я просто ссылаюсь на схему оракула:


Объекты схемы

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

Кластеры Ограничения Ссылки на базы данных Триггеры базы данных Габаритные размеры Библиотеки внешних процедур Индексированные таблицы Индексы Indextypes Java-классы, ресурсы Java, источники Java Материализованные виды Материализованные журналы просмотра Таблицы объектов Типы объектов Просмотр объектов операторы пакеты Последовательности Хранимые функции, хранимые процедуры Синонимы таблицы Просмотры


Объекты Nonchema

Другие типы объектов также хранятся в базе данных и могут быть созданы и обработаны с помощью SQL, но не содержатся в схеме:

контексты Справочники Файлы параметров (PFILE) и файлы параметров сервера (SPFILE) профили Роли Откат сегментов Табличные Пользователи

+2
источник

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

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

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

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

+2
источник

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

+1
источник

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

+1
источник

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

  • MySQL: database/schema :: table
  • SQL Server: database :: (schema/namespace ::) table
  • Оракул: database/schema/user :: (tablespace ::) table

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

+1
источник

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

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

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

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

0
источник

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

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

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

0
источник

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

0
источник

База данных содержит одну или несколько именованных схем, которые в свою очередь содержат таблицы. Схемы также содержат другие виды именованных объектов, включая типы данных, функции и операторы. Одно и то же имя объекта может использоваться в разных схемах без конфликтов; например, и schema1, и myschema могут содержать таблицы с именем mytable. В отличие от баз данных, схемы жестко не разделены: пользователь может получить доступ к объектам в любой из схем в базе данных, к которой он подключен, если у него есть права для этого.

Существует несколько причин, по которым можно использовать схемы:

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

Организовать объекты базы данных в логические группы, чтобы сделать их более управляемыми.

Сторонние приложения могут быть помещены в отдельные схемы, чтобы они не конфликтовали с именами других объектов.

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

Официальная документация может быть переданаhttps://www.postgresql.org/docs/9.1/ddl-schemas.html

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос