Ściśle mówiąc, różnica między Database i Schema jest inexisting w MySQL.
Jednak nie dotyczy to innych silników baz danych, takich jak SQL Server. Na serwerze SQL :,
Każda tabela należy do grupy obiektów w bazie danych zwanej schematem bazy danych . To kontener lub przestrzeń nazw ( zapytania dotyczące Microsoft SQL Server 2012 )
Domyślnie wszystkie tabele w SQL Server należą do domyślnego schematu o nazwie dbo . Kiedy odpytujesz tabelę, która nie została przydzielona do żadnego konkretnego schematu, możesz zrobić coś takiego:
SELECT *
FROM your_table
co jest równoważne z:
SELECT *
FROM dbo.your_table
Teraz serwer SQL pozwala na tworzenie różnych schematów, co daje możliwość grupowania tabel o podobnym przeznaczeniu. To pomaga uporządkować bazę danych.
Na przykład możesz utworzyć schemat o nazwie sprzedaż z tabelami, takimi jak faktury , zlecenia kredytowe (i wszelkie inne związane ze sprzedażą) oraz inny schemat zwany wyszukiwaniem , z tabelami takimi jak kraje , waluty , typy subskrypcji (i wszelkie inne tabele używane jako wygląd w górę tabeli).
Tabele przydzielone do określonej domeny są wyświetlane w programie SQL Server Studio Manager z nazwą schematu poprzedzoną nazwą tabeli (dokładnie tak samo, jak tabele należące do domyślnego schematu dbo ).
W SQL Server są specjalne schematy. Cytując tę samą książkę:
Istnieje kilka wbudowanych schematów bazy danych i nie można ich usunąć ani zmienić:
1) dbo , domyślny schemat.
2) gość zawiera obiekty dostępne dla użytkownika-gościa („użytkownik-gość” to specjalna rola w języku SQL Server, z pewnymi domyślnymi i bardzo ograniczonymi uprawnieniami). Rzadko używane.
3) INFORMATION_SCHEMA , używany przez widoki schematu informacyjnego
4) sys , zarezerwowane wyłącznie do użytku wewnętrznego programu SQL Server
Schematy służą nie tylko do grupowania. W rzeczywistości możliwe jest nadanie różnych uprawnień dla każdego schematu różnym użytkownikom, zgodnie z opisem MSDN .
W ten sposób wspomniane powyżej wyszukiwanie schematu mogłoby być udostępnione każdemu standardowemu użytkownikowi w bazie danych (np. SELECT
Tylko uprawnienia), podczas gdy tabela o nazwie dostawcabankaccountdetails może być przydzielona w innym schemacie zwanym finansowym i dawać dostęp tylko użytkownikom w grupę accounts
(tylko przykład, masz pomysł).
Wreszcie, cytując ponownie tę samą książkę:
To nie jest ten sam schemat bazy danych i schemat tabeli . Pierwsza to przestrzeń nazw tabeli, podczas gdy druga odwołuje się do definicji tabeli