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

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

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

Ali786 09.12.2014 12:48
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
167
1
232 288
15
Перейти к ответу Данный вопрос помечен как решенный

Ответы 15

Ответ принят как подходящий

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

Немного загадочно, но правильно; но неужели вы думаете, что самопровозглашенный n00b это поймет?

Stein G. Strindhaug 18.11.2008 16:49

Хорошая аналогия. Я бы изменил «план этажа» на «чертежи», потому что в схеме есть больше, чем просто таблицы, а чертежи содержат проводку, отопление и водопровод.

Paul Tomblin 18.11.2008 16:49

«Схема» на самом деле означает просто «план». Я видел, как он использовался для обозначения всей базы данных или только одной таблицы или представления.

MusiGenesis 18.11.2008 16:50

@ Пол: хорошие моменты. Изначально я написал «чертежи», но изменил их, потому что на самом деле это не означает «дом» (по крайней мере, для меня).

MusiGenesis 18.11.2008 16:52

@Stein: это довольно сурово по анбанму - он понял. :)

MusiGenesis 18.11.2008 16:52

наверняка схемы есть в базе данных, поэтому порядок неправильный? Я говорю конкретно об Oracle, но база данных содержит множество схем.

Robert 18.11.2008 16:54

@Robert: это может быть просто семантическим, но внутри Oracle «схема» больше синонимична «пользователю» или «владельцу».

MusiGenesis 18.11.2008 16:57

Да, я склонен рассматривать схему как пользователь в Oracle. Так что определения даже меняются от db к db: D Как раздражает.

Robert 18.11.2008 17:05

Я все время плохо говорю об Oracle, исходя из SQL Server.

MusiGenesis 18.11.2008 17:07

Я согласен с Полом Томблином, я предпочитаю "чертежи"

Alex Baranosky 24.01.2009 22:37

@GordonG: вы когда-нибудь видели план дома?

MusiGenesis 25.01.2009 03:10

@MusiGenesis: Просто спасибо за хороший, чистый и быстрый ответ. :)

Mayeenul Islam 26.07.2013 17:48

возможно вместо плана этажа вы могли бы использовать "папку" для схем

Dchris 09.01.2015 10:50

Всего два цента. На самом деле Schema - это пользователь, когда вы на нее смотрите. Владелец базы данных ... dbo независимо от SQL-сервера, MySQL, Oracle ... каждый получает dbo означает владельца базы данных ... Поэтому я бы изменил аналогию Владелец: Дом: Комната Если я вхожу в систему как владелец / резидент - я могу получить доступ к каждому дому, в котором я собственные, и комнаты внутри дома. Если я не владелец - мне просто не повезло - или хорошая работа, чтобы взломать замок.

Ken 09.03.2019 15:04

Обратите внимание, что слово «Схема» меняет определение для каждой СУБД.

Janac Meena 20.01.2020 18:33

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

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

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

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

Схема базы данных также включает индексы, представления и т. д.

Paul Tomblin 18.11.2008 16:50

конечно, это неверно. база данных - это не набор таблиц как таковых. У вас может быть 30 баз данных, например, без одной таблицы.

Robert 18.11.2008 16:57

@Robert - какой смысл иметь базу данных без таблиц?

Paul Tomblin 18.11.2008 17:00

Даже если у вас нет таблиц, это все равно набор таблиц - это набор таблиц пустой.

Jon Skeet 18.11.2008 17:01

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

Robert 18.11.2008 17:03

@Robert: коллекция включает пустой набор.

Jonathan Leffler 18.11.2008 17:06

@Ian: не забывайте, что база данных также будет иметь ограничения - ссылочные ограничения (первичные ключи, внешние ключи), ограничения уникальности и ограничения проверки. Он также может включать триггеры и процедуры.

Jonathan Leffler 18.11.2008 17:08

Кроме того, @Robert, я думаю, что «база данных», о которой вы говорите, - это термин, используемый коммерческими поставщиками и имеющий особое значение с точки зрения конфигурации. Более «формальное» определение базы данных - это просто «набор данных» (который включает базы данных СУБД, электронные таблицы и т. д.).

Ian Varley 20.12.2008 01:35

Как новичок, ИМХО, я чувствую, что больше всего на свете, это ответ, который на самом деле должен быть отмечен правильно.

Suhas Chikkanna 06.05.2018 16:21

плюс один к комментарию Джона Скита, независимо от того, что он говорит

TheIronKnuckle 02.11.2018 02:55

очень информативно указать, что существует связь «схема» и «схема» базы данных. Большинство других ответов здесь просто игнорируют это и говорят с точки зрения конкретной реализации базы данных.

Gadam 14.12.2020 16:44

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

Вероятно, это своего рода вещь, чтобы просто погуглить, но, к вашему сведению, термины, похоже, различаются по своим определениям, что является наиболее раздражающей вещью :)

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

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

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

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

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

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

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

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

Server.Database.Schema.Object

или же

myserver01.Adventureworks.Accounting.Beans

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

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

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

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

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

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

Но в MySQL они эквивалентны. Ключевое слово БАЗА ДАННЫХ или БАЗЫ ДАННЫХ можно заменить на СХЕМУ или СХЕМУ, где бы она ни появлялась. Примеры:

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

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

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

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

ценный ответ

sofs1 08.05.2019 01:10

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

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

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

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

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

Эти первые предложения абсолютно такие же .... stackoverflow.com/a/29042133/2308683

OneCricketeer 25.04.2017 05:25

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

schema : database : table :: floor plan : house : room

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

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

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

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

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

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

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

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

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

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

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

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

Согласно https://www.informit.com/articles/article.aspx?p=30669

The names of all objects must be unique within some scope. Every database must have a unique name; the name of a schema must be unique within the scope of a single database, the name of a table must be unique within the scope of a single schema, and column names must be unique within a table. The name of an index must be unique within a database.

Другие вопросы по теме