What is the difference between schema and data dictionary?
The definition of schema is logical struc开发者_开发百科ture of data in database. It is owned by a user and has the same name as the database user. The schema contains name of table, what is it's column type etc. And the data dictionary also contains metadata only (offcourse it is at database level and not at user level). What is the exact difference between schema and data dictionary?
These definitions are from my experience (programmer for 20+ years, 7 years in consulting, some time as an independent contractor). YMMV.
"Schema" describes structure. It might include metadata that describes aspects of the structure.
A "data dictionary" associates context with elements of the structure. It also might include metadata that describes aspects of relationships.
For example, A 'person' might be described by the usual fields - last_name, first_name, honorific, etc. If there is a relationship to another person - father, husband, etc - those values might be considered "schema data" because the relationships are constrained by specific values.
That the 'person' is a 'student' or a 'teacher' or a 'prisoner' etc - that is defined by the data dictionary for the particular system.
Usually "schema" means "inside the RDBMS". This generally means some technical minimum. Perhaps supplemented with one "comment" field.
Data Dictionary usually means "outside the RDBMS". This generally means some larger and more complex structure that is not limited to RDBMS table/column technology.
If you had two specific examples of a specific schema (e.g. Oracle) and a specific data dictionary against which to compare, you'd have an "exact" difference.
精彩评论