(Translated by https://www.hiragana.jp/)
「データベース」の版間の差分 - Wikipedia
削除さくじょされた内容ないよう 追加ついかされた内容ないよう
Cewbot (会話かいわ | 投稿とうこう記録きろく)
m Cewbot: ウィキ文法ぶんぽう修正しゅうせい 16: Unicodeの制御せいぎょ文字もじ
編集へんしゅう要約ようやくなし
 
4ぎょう:
[[Image:DVD Rental Query.png|thumb|SQL言語げんごの[[SELECT (SQL)|SELECTぶん]]とその実行じっこう結果けっかしめす。|upright=1.35]]
 
[[コンピューティング]]において、'''データベース'''({{Lang-en-short|database}})は、電子でんしてき保存ほぞんされ、アクセスできる組織そしきされた[[データ]]の集合しゅうごうである。[[記憶きおく装置そうち|メモリ]]保存ほぞんされるもの、[[Comma-Separated Values|CSV]]などの[[ファイル (コンピュータ)|ファイル]]保管ほかんされるもの、[[オペレーティングシステム|OS]]のファイルシステムなどから、後述こうじゅつ[[データベース管理かんりシステム]]使つかっただい規模きぼなものまである。
 
小規模しょうきぼなデータベースはOSの[[ファイルシステム]]じょうにファイルとして保存ほぞんされるが、だい規模きぼなデータベースはOSに依存いぞんしないていレベルなフォーマットで外部がいぶ[[記憶きおく装置そうち]]保存ほぞんされる。また[[コンピュータ・クラスター]]または[[クラウドストレージ]]で保存ほぞんされる。[[データベース設計せっけい]]にかかわる分野ぶんや多岐たきにわたり、[[データモデリング]]、効率こうりつてきなデータ表現ひょうげん保存ほぞん[[わせ言語げんご|クエリ言語げんご]]機密きみつデータの{{Ill2|データベース・セキュリティ|en|Database security|label=セキュリティ}}や[[情報じょうほうプライバシー|プライバシー]][[並行へいこう計算けいさん|同時どうじアクセス]][[フォールトトレランス]]のサポートをふくむ[[分散ぶんさんコンピューティング]]の課題かだいなど、形式けいしき技術ぎじゅつ実用じつようてき考慮こうりょ事項じこうおよぶ。
 
'''[[データベース管理かんりシステム]]'''('''DBMS''')は、[[エンドユーザー]]、アプリケーション、およびデータベース自体じたい対話たいわし、データを取得しゅとく分析ぶんせきするための[[ソフトウェア]]である。さらに、DBMSソフトウェアには、データベースを管理かんりするために提供ていきょうされる関連かんれん機能きのうふくまれている。データベース、DBMS、関連かんれんアプリケーションの全体ぜんたいふくめて'''データベースシステム'''とぶ。しばしば「データベース」という用語ようごが、DBMS、データベースシステム、またはデータベースに関連かんれんするアプリケーションのいずれかを場合ばあい漠然ばくぜん使つかわれている。
 
コンピュータ科学かがくしゃは、データベース管理かんりシステムを、サポートする[[データベースモデル]]もとづいて分類ぶんるいしている。[[関係かんけいデータベース|リレーショナルデータベース]]は、[[1980年代ねんだい]]主流しゅりゅうであった。これらは、データを一連いちれんの[[ひょう (データベース)|ひょう]]の[[くだり (データベース)|くだり]][[れつ (データベース)|れつ]]としてモデルし、だい多数たすうはデータのみとクエリ(わせ)に[[SQL]]を使用しようする。[[2000年代ねんだい]]には、ことなる[[わせ言語げんご|クエリ言語げんご]]使用しようする [[NoSQL]] と総称そうしょうされるリレーショナルデータベースが普及ふきゅうした。
 
== 用語ようご概要がいよう ==
25ぎょう:
* '''検索けんさく'''(''Retrieval'')- 情報じょうほう直接ちょくせつ利用りようできる形式けいしきで、またはのアプリケーションでさらに処理しょりできる形式けいしき提供ていきょうする。検索けんさくしたデータは、基本きほんてきにデータベースに保存ほぞんされているのとおな形式けいしき利用りようできるほか、データベースの既存きそんのデータを変更へんこうまたはわせてあらたな形式けいしきでも利用りようすることができる<ref>{{cite web |url=http://www.merriam-webster.com/dictionary/retrieval |title=Retrieval – Definition of retrieval by Merriam-Webster |work=merriam-webster.com |access-date=2022-08-14}}</ref>。
* '''管理かんり'''(''Administration'')- ユーザーの登録とうろくかん、データセキュリティの実施じっし性能せいのう監視かんし、[[データ完全かんぜんせい]]の維持いじ並行へいこうせい制御せいぎょ対応たいおう予期よきしないシステム障害しょうがいなどの事象じしょうによって破損はそんした情報じょうほう回復かいふくなど<ref>{{cite web |url=http://www.merriam-webster.com/dictionary/administration |title=Administration – Definition of administration by Merriam-Webster |work=merriam-webster.com |access-date=2022-08-14}}</ref>。
データベースとそのDBMSはともに、特定とくてい[[データベースモデル]]原則げんそく準拠じゅんきょしている{{sfn|Tsitchizris|Lochovsky|1982}}。 「データベースシステム」とは、データベースモデル、データベース管理かんりシステム、データベースを総称そうしょうしたものである{{sfn|Beynon-Davies|2003}}。
 
物理ぶつりてきには、データベース・[[サーバー (コンピューター)|サーバー]]は、実際じっさいのデータベースを格納かくのうし、DBMSと関連かんれんソフトウェアのみを実行じっこうする専用せんようコンピュータである。データベース・サーバーは通常つうじょうだい容量ようりょうのメモリと、安定あんていしたストレージ(れい: [[RAID]]ディスクアレイ)をそなえた[[マルチプロセッサ]]・コンピュータである。だい容量ようりょうの[[トランザクション処理しょり]]環境かんきょうでは、複数ふくすうだいのサーバーと高速こうそく[[チャネル・コントローラ|チャネル]]をかいして接続せつぞくされた[[ハードウェアアクセラレーション|ハードウェア・データベース・アクセラレータ]]も使用しようされる。ほとんどの{{Ill2|データベース・アプリケーション|en|Database application}}の中心ちゅうしんにDBMSがある。DBMSは、ネットワークのサポートをんだカスタムの[[マルチタスク]]・[[カーネル]]を中心ちゅうしん構築こうちくされることもあるが、最近さいきんのDBMSは通常つうじょう、これらの機能きのう提供ていきょうするために、標準ひょうじゅんてきな[[オペレーティングシステム]]に依存いぞんしている{{cn|reason=This has become a mish-mash people's opinion and while boardly accurate may be in places undue and ignored e.g. SAN storage and needs cited rewrite from scrach|date=January 2020}}。
31ぎょう:
DBMSは重要じゅうような{{Ill2|市場いちば (経済けいざいがく)|en|Market (economics)|label=市場いちば}}を形成けいせいしているため、コンピューターやストレージのベンダーは、自社じしゃ開発かいはつ計画けいかくにDBMSの要件ようけん考慮こうりょれていることがおおい{{sfn|Nelson|Nelson|2001}}。
 
データベースとDBMSは、サポートするデータベースモデル(リレーショナルや[[Extensible Markup Language|XML]]など)、実行じっこうするコンピュータの種類しゅるい(サーバークラスタから携帯けいたい電話でんわまで)、データベースへのアクセスに使用しようするクエリ言語げんご(SQLや[[XQuery]]など)、内部ないぶエンジニアリング(性能せいのう、[[スケーラビリティ]]、障害しょうがい許容きょようりょく、およびセキュリティに影響えいきょうする)によって分類ぶんるいすることができる。
 
== 歴史れきし ==
データベースとそれぞれのDBMSの規模きぼ機能きのう性能せいのう桁違けたちがいにおおきくなっている。これらの性能せいのう向上こうじょうは、[[中央ちゅうおう処理しょり装置そうち|プロセッサ]]、[[コンピュータメモリ]]、[[コンピュータデータストレージ|コンピュータストレージ]]、および[[コンピュータネットワーク]]の技術ぎじゅつ進歩しんぽにより可能かのうとなった。データベースの概念がいねんは、[[1960年代ねんだい]]なかばにひろ普及ふきゅうした磁気じきディスクなどの[[直接ちょくせつアクセス記憶きおく装置そうち|直接ちょくせつアクセス記憶きおく媒体ばいたい]]の出現しゅつげんによって可能かのうとなった。それ以前いぜんのシステムは、[[磁気じきテープ]]へのデータの順次じゅんじ保存ほぞんっていた。そののデータベース技術ぎじゅつ発展はってんは、[[データモデル]]または[[データ構造こうぞう]]にもとづいて、[[ナビゲーショナルデータベース|ナビゲーショナル]]{{sfn|Bachman|1973}}、SQL/[[リレーショナル関係かんけいデータベース|リレーショナル]]、ポストリレーショナルの3つの時代じだいけることができる。
 
初期しょきのナビゲーショナル・データモデルは、[[階層かいそうがたデータモデル|階層かいそうがたモデル]]と[[ネットワークがたデータモデル|ネットワークがたモデル]]([[CODASYL]]モデル)の2つがおもであった。これらは、あるレコードからべつのレコードへの関係かんけい追跡ついせきするために、[[ポインタ (プログラミング)|ポインタ]](おおくの場合ばあい物理ぶつりてきなディスクアドレス)を使用しようすることが特徴とくちょうであった。
 
1970ねんに[[エドガー・F・コッド]]が提唱ていしょうした[[リレーショナルモデル]]は、この伝統でんとうから脱却だっきゃくするもので、アプリケーションがリンクをたどるのではなく、内容ないようからデータを検索けんさくすべきであると主張しゅちょうするものであった。リレーショナルモデルは、元帳もとちょうがたひょう<!-- ledger-style tables -->のあつまりをわせたもので、それぞれのひょうことなる種類しゅるいのエンティティ(実体じったい)を格納かくのうする。1980年代ねんだいなかばになって、コンピューティング・ハードウェアは、リレーショナルシステム(DBMSとアプリケーション)を幅広はばひろ普及ふきゅうするのに十分じゅうぶん性能せいのうつようになった。けれども、[[1990年代ねんだい]]初頭しょとうには、すべてのだい規模きぼな[[データ処理しょり]]アプリケーションにおいてリレーショナルシステムが主流しゅりゅうとなり、2018ねん現在げんざい主流しゅりゅうでありつづけている。[[IBM Db2]]、[[Oracle Database|Oracle]]、[[MySQL]]、[[Microsoft SQL Server]]、[[PostgreSQL]]は、もっと検索けんさくされている[[DBMS]]である<ref>{{cite web |url=https://pypl.github.io/DB.html |title=TOPDB Top Database index |work=pypl.github.io |access-date=2022-07-16}}</ref>。リレーショナルモデルよう主要しゅよう[[データベース言語げんご]]である標準ひょうじゅんSQLは、のデータモデルようのデータベース言語げんごにも影響えいきょうあたえた{{Citation needed|date=March 2013}}。
 
[[オブジェクトデータベース]]は、[[オブジェクト指向しこう]]とリレーショナルがたとの[[インピーダンスミスマッチ]](相性あいしょう欠如けつじょ)による不便ふべんさを解消かいしょうするために1980年代ねんだい開発かいはつされ、これにより「ポストリレーショナル(''post-relational'')」という言葉ことばまれ、また、ハイブリッドがたの[[オブジェクトリレーショナルデータベース|オブジェクト・リレーショナルデータベース]]も開発かいはつされた。
90ぎょう:
 
=== 1970年代ねんだい後半こうはん、SQL DBMS ===
[[1970年代ねんだい]]前半ぜんはん、IBMは、''[[System R]]''として、コッドの概念がいねんおおまかにもとづいたプロトタイプシステムの開発かいはつはじめた。最初さいしょのバージョンは1974ねん5がつ完成かんせいし、その、レコードを構成こうせいするすべての要素ようそ一部いちぶはオプション)を単一たんいつおおきな「チャンク(''chunk''、かたまり)」に格納かくのうする必要ひつようがないように、データを分割ぶんかつできるマルチテーブルシステムに対応たいおうする作業さぎょう開始かいしされた。その、1978ねんと1979ねんにマルチユーザーバージョンが顧客こきゃくによってテストされ、その時点じてんでは標準ひょうじゅんされていた[[わせ言語げんご|クエリ言語げんご]]SQLが追加ついかされていた{{Citation needed|reason=First version of SQL standard was SQL-86 adopted in 1986|date=May 2012}}。コッドのアイデアは、実行じっこう可能かのうでCODASYLよりもすぐれたものとして確立かくりつされ、IBMが''SQL/DS''としてられるSystem Rのしん製品せいひんばん、そしてのちに''Database 2''([[IBM Db2]])を開発かいはつすることを後押あとおしした。
 
[[ラリー・エリソン]]の[[Oracle Database]](以下いか、Oracle)は、IBMのSystem Rにかんする論文ろんぶんもとに、べつ系統けいとうから出発しゅっぱつした。Oracle V1の実装じっそうは1978ねん完了かんりょうしたが、エリソンが1979ねんにIBMをかしたのはOracle Version 2を市場いちば投入とうにゅうしてからであった<ref>{{cite web|url=https://www.oracle.com/us/corporate/profit/p27anniv-timeline-151918.pdf |title=Oracle 30th Anniversary Timeline |access-date=23 August 2017}}</ref>。
98ぎょう:
スウェーデンでもコッドの論文ろんぶんまれ、1970年代ねんだいなかばに[[ウプサラ大学だいがく]]で{{Ill2|Mimer SQL|en|Mimer SQL}}が開発かいはつされた。1984ねん、このプロジェクトは独立どくりつした企業きぎょう統合とうごうされた。
 
1976ねん登場とうじょうした[[実体じったい関連かんれんモデル|実体じったい関係かんけいモデル]]は、それまでのリレーショナルモデルよりも馴染なじみのある記述きじゅつほう重視じゅうししたもうひとつのデータモデルであり、[[データベース設計せっけい]]で人気にんきはくした。その実体じったい-関係かんけい構造こうぞうは、リレーショナルモデルの[[データモデリング]]構造こうぞうとして追加ついかされ、両者りょうしゃちがいは無意味むいみなものとなった{{Citation needed|date=March 2013}}。
 
=== 1980年代ねんだい、デスクトップ ===
1980年代ねんだいは、[[デスクトップコンピュータ|デスクトップコンピューティング]]の時代じだい到来とうらいげた。あたらしいコンピュータは、[[Lotus 1-2-3]]のようなおもて計算けいさんソフトや[[dBASE]]のようなデータベースソフトで、ユーザーにちからをもたらした。dBASE製品せいひん軽量けいりょうで、コンピューターユーザーはだれでも容易ようい理解りかいできた。dBASEの作者さくしゃ、{{Ill2|ウェイン・ラトリフ|en|Wayne Ratliff}}はつぎのようにべている。「dBASEは、BASIC、C、FORTRAN、COBOLのような[[プログラム (コンピュータ)|プログラム]]とはことなり、おおくのきたな仕事しごとはすでにおこなわれている。データ操作そうさはユーザーではなくdBASEがおこなうので、ユーザーはファイルをひらき、み、じ、スペースての管理かんりなどのきたな詳細しょうさいわずらわされることなく、自分じぶんのしていることに集中しゅうちゅうすることができる」<ref>[http://www.foxprohistory.org/interview_wayne_ratliff.htm Interview with Wayne Ratliff]. The FoxPro History. Retrieved on 2013-07-12.</ref>。dBASEは、1980年代ねんだいから1990年代ねんだい初頭しょとうにかけて、もっとれたソフトウェアのひとつであった。
 
=== 1990年代ねんだい、オブジェクト指向しこう ===
1990年代ねんだいは、[[オブジェクト指向しこうプログラミング]]の台頭たいとうとともに、さまざまなデータベースないのデータのあつかかた発展はってんられた。プログラマーと設計せっけいしゃは、データベースないのデータを[[オブジェクト (プログラミング)|オブジェクト]]としてあつかうようになった。つまり、ある個人こじんのデータがデータベースないにある場合ばあい、そのひと住所じゅうしょ電話でんわ番号ばんごう年齢ねんれいなどの特性とくせい外来がいらいのデータではなく、そのひとぞくするものとかんがえられるようになった<ref>Development of an object-oriented DBMS; Portland, Oregon, United States; Pages: 472–482; 1986; {{ISBN2|0-89791-204-7}}</ref>。これにより、データあいだ関係かんけいは、個々ここのフィールドではなく、オブジェクトとその[[プロパティ (プログラミング)|属性ぞくせい]]に関連付かんれんづけられる。プログラムされたオブジェクトとデータベースのテーブルとのあいだ変換へんかん不都合ふつごうは、「[[オブジェクト-リレーショナル・インピーダンスミスマッチ]]」という言葉ことばあらわされる。[[オブジェクトデータベース|オブジェクト・データベース]]や[[オブジェクトリレーショナルデータベース|オブジェクト・リレーショナルデータベース]]は、この問題もんだい解決かいけつするために、プログラマーが純粋じゅんすいなリレーショナルSQLのわりに使用しようできるオブジェクト指向しこう言語げんご(SQLの拡張かくちょう機能きのうという場合ばあいもある)を提供ていきょうしようとするものである。プログラミングがわ立場たちばでは、[[オブジェクトリレーショナル関係かんけいマッピング|オブジェクト・リレーショナル・マッピング]](ORM)とばれるライブラリで、おな問題もんだい解決かいけつしようとしている
 
=== 2000年代ねんだい、NoSQLとNewSQL ===
{{Main|NoSQL|NewSQL}}
 
[[XMLデータベース]]は、構造こうぞうされたドキュメント指向しこうデータベースの一種いっしゅで、[[Extensible Markup Language|XML文書ぶんしょ]]属性ぞくせいもとづいたクエリが可能かのうである。XMLデータベースは、たとえば科学かがく論文ろんぶん特許とっきょ税務ぜいむ申告しんこく人事じんじ記録きろくなど、非常ひじょう柔軟じゅうなんなものから非常ひじょう厳格げんかくなものまで、データをさまざまな構造こうぞう文書ぶんしょ集合しゅうごうとしてるのに便利べんりなアプリケーションでおも使用しようされる。
 
[[NoSQL]]データベースは、おおくの場合ばあい非常ひじょう高速こうそくで、固定こていしたテーブルスキーマを必要ひつようとせず、{{Ill2|正規せいき|en|Denormalization}}したデータを格納かくのうすることで結合けつごう操作そうさ回避かいひし、[[スケーラビリティ#スケールアップとスケールアウト|水平すいへいスケーリング]]するように設計せっけいされている。
125ぎょう:
 
== 分類ぶんるい ==
データベースを分類ぶんるいする方法ほうほうとして、たとえば、{{Ill2|文献ぶんけんデータベース|en|Bibliographic database|label=書誌しょし}}、文書ぶんしょ、テキスト、統計とうけい、マルチメディアなど、その内容ないよう種類しゅるいによるものがある。だい方法ほうほうは、会計かいけい作曲さっきょく映画えいが銀行ぎんこう製造せいぞう保険ほけんなど、応用おうようめんによる分類ぶんるいがある。だいさん方法ほうほうは、データベースの構造こうぞう[[インタフェース (情報じょうほう技術ぎじゅつ)|インターフェース]]種類しゅるいなど、技術ぎじゅつてき側面そくめんによるものである。このふしでは、さまざまな種類しゅるいのデータベースを特徴付とくちょうづけるために使用しようされる用語ようごをいくつか列挙れっきょする。
* [[インメモリデータベース]]とは、おもに[[メインメモリー|メインメモリ]]ない存在そんざいするデータベースで、一般いっぱんてき不揮発ふきはつせいのコンピューターデータストレージによってバックアップされる。メインメモリーデータベースはディスクデータベースよりも高速こうそくであるため、通信つうしんネットワーク機器ききなど、応答おうとう時間じかん重要じゅうよう場合ばあい使用しようされることがおおい。
* {{Ill2|アクティブデータベース|en|Active database}}は、データベース内外ないがい両方りょうほう状況じょうきょう応答おうとうできる[[イベント駆動くどう]]がた[[アーキテクチャ]]をそなえている。セキュリティ監視かんし、アラート、統計とうけい収集しゅうしゅう、および承認しょうにんなどの用途ようとかんがえられる。おおくのデータベースは、[[データベーストリガ|データベーストリガー]]というかたちでアクティブデータベースの機能きのう提供ていきょうする。
155ぎょう:
* {{Ill2|空間くうかんデータベース|en|Spatial database}}は、多次元たじげんてき特徴とくちょうつデータを格納かくのうすることができる。このようなデータにたいするクエリには、たとえば「わたしのいる地域ちいきもっとちかいホテルはどこですか?」というような、位置いちもとづくクエリがふくまれる。
* {{Ill2|時間じかんデータベース|en|Temporal database}}は、時間じかんデータモデルや時間じかんバージョンの[[SQL]]など、時間じかんてき側面そくめんまれている。より具体ぐたいてきには、通常つうじょう時間じかんてき側面そくめんには有効ゆうこう時間じかんとトランザクション時間じかんふくまれる。
* {{Ill2|用語ようご指向しこうデータベース|en|Terminology-oriented database}}は、[[オブジェクト指向しこうデータベース]]もとづいて構築こうちくされ、おおくの場合ばあい特定とくてい分野ぶんやけにカスタマイズされている。
* 構造こうぞうデータデータベースは、一般いっぱんてきなデータベースに自然しぜんかつ簡単かんたん適合てきごうしない多様たようなオブジェクトを、管理かんり可能かのうかつ保護ほごされた方法ほうほう格納かくのうすることを目的もくてきとしている。これには、電子でんしメールメッセージ、文書ぶんしょ雑誌ざっし、マルチメディアオブジェクトなどがふくまれることがある。オブジェクトのなかには高度こうど構造こうぞうされたものもあるため、この名称めいしょう誤解ごかいまね可能かのうせいがある。しかし、可能かのうせいのあるオブジェクトの集合しゅうごう全体ぜんたいが、あらかじめ定義ていぎされた構造こうぞうフレームワークに適合てきごうするものではない。現在げんざい、ほとんどの既製きせいのDBMSは、さまざまな方法ほうほう構造こうぞうデータをサポートしており、あたらしい専用せんようDBMSも登場とうじょうしている。 <!-- (英語えいごばん記事きじのコメントの翻訳ほんやく) これは文書ぶんしょ指向しこうのデータベースではないか? ちがうなら明確めいかく区別くべつしてしい。 -->
 
161ぎょう:
ConnollyとBeggは、データベース管理かんりシステム(DBMS)を「ユーザーがデータベースを定義ていぎ作成さくせい保守ほしゅ、およびアクセスを制御せいぎょできるようにするソフトウェアシステム」と定義ていぎしている{{sfn|Connolly|Begg|2014|p=64}}。DBMSのれいとして、[[MySQL]]、[[PostgreSQL]]、[[Microsoft SQL Server]]、[[Oracle Database]]、[[Microsoft Access]]があげられる。
 
DBMSの頭文字かしらもじは、基盤きばんとなる[[データベースモデル]]しめして拡張かくちょうされることがあり、[[リレーショナルモデル|リレーショナルがた]]はRDBMS、{{Ill2|オブジェクトモデル|en|Object model|label=オブジェクト(指向しこう)がた}}はOODBMS、[[オブジェクトリレーショナルデータベース|オブジェクトリレーショナルがた]]はORDBMSとばれる。また、[[分散ぶんさんがたデータベース|分散ぶんさんがたデータベース管理かんりシステム]]をあらわすDDBMSなど、特性とくせいあらわすように拡張かくちょうすることができる。
 
DBMSが提供ていきょうする機能きのう非常ひじょう多様たようである。中心ちゅうしんてき機能きのうは、データの保存ほぞん検索けんさく更新こうしんである。コッドは、本格ほんかくてき汎用はんようDBMSが提供ていきょうすべき機能きのうおよびサービスとして、つぎのようなものを提案ていあんした{{sfn|Connolly|Begg|2014|pp=97–102}}。
172ぎょう:
* 遠隔えんかくからのアクセスサポート
* データベースないのデータが特定とくてい規則きそくしたがうことを保証ほしょうするための制約せいやく適用てきよう
また、DBMS は、インポート、エクスポート、監視かんし、デフラグメント、分析ぶんせきユーティリティなど、データベースを効果こうかてき管理かんりするために必要ひつよう一連いちれんのユーティリティを提供ていきょうすることも、一般いっぱん期待きたいされている{{sfn|Connolly|Begg|2014|p=102}}。データベースと[[アプリケーション・プログラミング・インタフェス|アプリケーション・インタフェース]]あいだ相互そうご作用さようするDBMSの中心ちゅうしん部分ぶぶんは、[[データベースエンジン|データベース・エンジン]]とばれることもある。
 
おおくのDBMSは、データベースが使用しようできるサーバじょうのメインメモリの最大さいだいりょうなど、静的せいてきまたは動的どうてき調整ちょうせい可能かのう構成こうせいパラメータをっている。手動しゅどう構成こうせいするりょう最小限さいしょうげんおさえる傾向けいこうがあり、{{Ill2|みデータベース|en|Embedded database}}のような場合ばあいは、ゼロ管理かんり目標もくひょうとする要求ようきゅうもっと重要じゅうようである。
178ぎょう:
だい規模きぼなエンタープライズDBMSでは、サイズや機能きのう増大ぞうだいする傾向けいこうがあり、その生涯しょうがいつうじてすうせんにんねん開発かいはつ努力どりょくついやされることがある{{efn|<!--This article quotes a development time of 5 years involving 750 people for DB2 release 9 alone.-->この記事きじでは、DB2リリース9単独たんどくで750にん関与かんよした5年間ねんかん開発かいはつ期間きかん引用いんようしている。{{harv|Chong|Wang|Dang|Snow|2007}}}}。
 
初期しょきのマルチユーザーDBMSでは、一般いっぱんてきに、アプリケーションをおなじコンピュータじょう動作どうささせ、[[コンピュータ端末たんまつ]]または端末たんまつエミュレーションソフトウェアをつうじてアクセスすることしかできなかった。[[クライアントサーバモデル|クライアント・サーバー・アーキテクチャ]]は、アプリケーションはクライアントのデスクトップじょうにあり、サーバーじょう存在そんざいするデータベースが処理しょり分散ぶんさんできるように開発かいはつされた。これが進化しんかして、[[アプリケーションサーバ|アプリケーションサーバー]]や[[ウェブWebサーバ]]をんだ[[多層たそうアーキテクチャ]]となり、エンドユーザーインターフェイスは[[ウェブブラウザ]]をかいしてアクセスし、データベースは隣接りんせつするそう直接ちょくせつ接続せつぞくされるのみとなった{{sfn|Connolly|Begg|2014|pp=106–113}}。
 
汎用はんようDBMSは、公開こうかいの[[アプリケーションプログラミングインタフェース]](API)と、オプションで[[SQL]]などの[[データベース言語げんご]]ようのプロセッサを提供ていきょうして、データベースと対話たいわ操作そうさするアプリケーションを作成さくせいできるようにする。特殊とくしゅ用途ようとのDBMSは、プライベートなAPIを使用しようし、特別とくべつにカスタマイズして単一たんいつのアプリケーションにリンクされることがある。たとえば、[[電子でんしメール]]システムは、メッセージの挿入そうにゅう削除さくじょ添付てんぷファイルの処理しょり、ブロックリストの検索けんさく、メッセージと電子でんしメールアドレスの関連かんれんけなど、汎用はんようDBMSの機能きのうおおくを実行じっこうするが、これらの機能きのう電子でんしメールの処理しょり必要ひつようなものに限定げんていされている。
 
== アプリケーション ==
186ぎょう:
データベースとの外部がいぶ相互そうご作用さようは、DBMSと接続せつぞくするアプリケーション・プログラムをかいしておこなわれる{{sfn|Connolly|Begg|2014|p=65}}。アプリケーションは、ユーザーが文字もじてきまたは視覚しかくてきにSQLクエリを実行じっこうできる[[データベース管理かんりツールの比較ひかく|データベースツール]]から、情報じょうほう格納かくのう検索けんさくするためにデータベースを使用しようするWebサイトまで、多岐たきにわたる。
 
=== アプリケーションプログラムインタフェース(API) ===
[[プログラマー]]は、[[アプリケーションプログラミングインタフェース]](API)または[[データベース言語げんご]]かいして、データベース({{Ill2|データソース|en|Datasource}}とばれることもある)との相互そうご対話たいわを[[コーディング]]する。選択せんたくされた特定とくていのAPIや言語げんごは、DBMSによって直接的ちょくせつてきにサポートされるか、または[[プリプロセッサ]]またはブリッジングAPIをかいして間接かんせつてきにサポートされる必要ひつようがある。APIのなかにはデータベースに依存いぞんしないことを目的もくてきとするものもあり、[[ODBC]]はそのよくられたれいである。その一般いっぱんてきなAPIには、[[JDBC]]や[[ADO.NET]]がある。
 
== データベース言語げんご ==
206ぎょう:
* クエリ結果けっか変更へんこうするための計算けいさん。たとえば、カウント、合計ごうけい平均へいきんならえ、グループ、クロスリファレンス。
* 制約せいやく適用てきようれい: 自動車じどうしゃデータベースでは、1だいくるまごとに1種類しゅるいのエンジンのみ許可きょかされる)。
* プログラマーの便宜べんぎのために、クエリ言語げんごのアプリケーションプログラミングインタフェースばん
 
== ストレージ ==
{{Main|[[記憶きおく装置そうち]]<!--Computer data storage-->|[[データベースエンジン]]<!--Database engine-->}}
 
データベースストレージは、データベースの物理ぶつりてき実体じったい格納庫かくのうこである。これは、データベースアーキテクチャの「''内部ないぶ物理ぶつり)レベル''」を構成こうせいする。また、必要ひつようおうじて「内部ないぶレベル」から「概念がいねんレベル」や「外部がいぶレベル」をさい構築こうちくするために必要ひつようなすべての情報じょうほう(たとえば[[メタデータ]]、「データにかんするデータ」、内部ないぶ[[データ構造こうぞう]]など)もふくんでいる。デジタル・オブジェクトとしてのデータベースには、データ、構造こうぞう、セマンティクス(意味いみ)の3つのそうからなる情報じょうほうふくまれ、保存ほぞんする必要ひつようがある。長期間ちょうきかんわたって[[データベース保存ほぞん|データベースを保存ほぞん]]し、長持ながもちさせるために、3つのそうすべてを適切てきせつ保存ほぞんする必要ひつようがある<ref>{{Cite journal |author=Ramalho, José Carlos |author2=Faria, Luis |author3=Silva, Hélder |author4=Coutada, Miguel |title=Database Preservation Toolkit: a flexible tool to normalize and give access to databases |year=2014 |publisher=Biblioteca Nacional de Portugal (BNP) |ISBN=978-972-565-541-2 |hdl=1822/35183 |url=https://repositorium.sdum.uminho.pt/handle/1822/35183}}</ref>。データを永続えいぞくてきストレージに保存ほぞんするのは、一般いっぱんに、[[データベースエンジン]](別名べつめい「ストレージエンジン」)の責任せきにんである。DBMSは通常つうじょう基盤きばんとなるオペレーティングシステムをつうじてアクセスするが(おおくの場合ばあい、オペレーティングシステムのファイルシステムを、ストレージ配置はいち仲介ちゅうかいやくとして使用しようする)、ストレージの特性とくせい構成こうせい設定せっていはDBMSの効率こうりつてき運用うんようきわめて重要じゅうようであるため、データベース管理かんりしゃによって密接みっせつ管理かんりされる。DBMSは、その運用うんようちゅうに、つね数種類すうしゅるいのストレージ(メモリや外部がいぶストレージ)にデータベースを常駐じょうちゅうさせている。データベースのデータと、追加ついか必要ひつよう情報じょうほう(おそらく非常ひじょう大量たいりょうにある)は、[[ビット|ビット列びっとれつ]]に[[符号ふごう]]される。データは通常つうじょう概念がいねんレベルや外部がいぶレベルでのかたとはまったことなる構造こうぞうでストレージない存在そんざいするが、ユーザーやプログラムが必要ひつようとするとき、または必要ひつよう情報じょうほう追加ついか形式けいしきをデータから計算けいさんするとき(れい: データベースにわせるとき)、これらのレベルのさい構築こうちくを(可能かのうかぎり)最適さいてきするような方法ほうほう格納かくのうされる。
 
DBMSのなかには、データの格納かくのうもちいる[[文字もじエンコーディング]]を指定していできるものがあり、おなじデータベースで複数ふくすうのエンコーディングを使用しようすることができる。
232ぎょう:
{{ill2|データベースセキュリティ|en|Database security|label=データベース・セキュリティ}}は、データベースの内容ないよう、その所有しょゆうしゃ、およびそのユーザーを保護ほごするためのあらゆる側面そくめんあつかう。その範囲はんいは、意図いとてき不正ふせいなデータベースの使用しようから、権限けんげんのないエンティティ(たとえば、ひとやコンピュータプログラムなど)による意図いとしないデータベースへのアクセスまで、さまざまな保護ほごおよぶ。
 
データベースアクセス制御せいぎょは、データベースないのどの情報じょうほうだれが(人間にんげんまたは特定とくていのコンピュータプログラム)アクセスを許可きょかされるかを制御せいぎょすることをあつかう。その情報じょうほうには、特定とくていのデータベースオブジェクト(れい: レコード種類しゅるい特定とくていレコード、データ構造こうぞう)、特定とくていのオブジェクトにたいする特定とくてい計算けいさんれい: クエリ種類しゅるい特定とくていのクエリ)、または前者ぜんしゃたいする特定とくていのアクセス経路けいろ使用しようれい: 情報じょうほうにアクセスするために特定とくていのインデックスまたはのデータ構造こうぞう使用しよう)がふくまれる。データベースのアクセス制御せいぎょは、データベース所有しょゆうしゃから特別とくべつ許可きょかされた人員じんいんによって、保護ほごされた専用せんようのセキュリティDBMSインタフェースをもちいて設定せっていされる。
 
アクセス制御せいぎょ管理かんりは、個人こじんべつ直接ちょくせつおこなうことも、個人こじんと{{Ill2|特権とっけん (コンピュータ)|en|Privilege (computing)|label=特権とっけん}}をグループにてることも、(もっと精巧せいこうなモデルでは)個人こじんやグループにロール(役割やくわり)をててからロールに権限けんげん付与ふよすることもできる。データセキュリティは、権限けんげんのないユーザーによるデータベースの閲覧えつらん更新こうしん阻止そしする。パスワードを使用しようすると、ユーザーはデータベース全体ぜんたい、または「サブスキーマ」とばれる一部分いちぶぶんへのアクセスを許可きょかされる。たとえば、従業じゅうぎょういんデータベースには個々ここ従業じゅうぎょういんかんするすべてのデータをふくめていても、あるグループのユーザーには給与きゅうよデータのみの閲覧えつらん許可きょかし、べつのグループには職歴しょくれき医療いりょうデータのみアクセスを許可きょかすることが可能かのうである。DBMSがデータベースの入力にゅうりょく更新こうしんわせを対話たいわてきおこな方法ほうほう提供ていきょうしている場合ばあい、この機能きのうによって個人こじんデータベースを管理かんりすることができる。
257ぎょう:
アプリケーションのデータベースを設計せっけいしたら、つぎ段階だんかいはデータベースの構築こうちくである。通常つうじょう、この用途ようともちいるために、適切てきせつ汎用はんようDBMSを選択せんたくすることができる。DBMSは、データベース管理かんりしゃ必要ひつようなアプリケーションのデータ構造こうぞうをDBMSのかくデータモデルにじゅんじて定義ていぎするために必要ひつような[[ユーザインタフェース|ユーザーインタフェース]]を提供ていきょうする。そののユーザーインタフェースは、必要ひつようなDBMSパラメータ(セキュリティ関連かんれん、ストレージてパラメータなど)を選択せんたくするためにもちいられる。
 
データベースの準備じゅんびととのうと(データ構造こうぞうおよびその必要ひつようなコンポーネントがすべて定義ていぎされる)、通常つうじょうは、運用うんよう開始かいしするまえにアプリケーションの初期しょきデータを入力にゅうりょくする(データベースの初期しょきは、通常つうじょうべつプロジェクトとされ、おおくの場合ばあい一括いっかつ挿入そうにゅうをサポートする専用せんようのDBMSインタフェースをもちいる)。場合ばあいによっては、アプリケーションのデータをたない状態じょうたいでデータベースが稼働かどうし、その運用うんようてデータが蓄積ちくせきされることもある。
 
データベースを作成さくせいし、初期しょきし、データを入力にゅうりょくしたのちは、データベースを維持いじする必要ひつようがある。たとえば、より性能せいのうるために、さまざまなデータベース・パラメータを変更へんこうし、データベースを{{ill2|データベースチューニング|en|Database tuning|label=チューニング}}する必要ひつようがあるかもしれない。あるいは、アプリケーションの機能きのう追加ついかするために、アプリケーションのデータ構造こうぞう変更へんこうまたは追加ついかし、あたらしい関連かんれんアプリケーションプログラムを作成さくせいするかもしれない。
284ぎょう:
{{Main|[[データベース設計せっけい]]<!--Database design-->}}
[[File:Process of database design v2.png|upright=2|thumb|データベース設計せっけい過程かていしめなが。1.まずビジネスじょう用途ようと知識ちしきから概念がいねんデータモデルを作成さくせいし、2.つぎにデータベースないのデータ構造こうぞう反映はんえいした論理ろんりデータモデルを作成さくせいし、3.最後さいご特定とくていのRDBMSに依存いぞんした決定けっていもとづく物理ぶつりデータベースを作成さくせいする。]]
データベース設計せっけいしゃ最初さいしょ作業さぎょうは[[概念がいねんスキーマ (データベース)|概念がいねんデータモデル]]{{Enlink|Conceptual schema|英語えいごばん|en}}の作成さくせいで、データベースに保持ほじする情報じょうほう構造こうぞう反映はんえいする。そのための一般いっぱんてき方法ほうほうは、描画びょうがツールをもちいて[[実体じったい関連かんれんモデル]]を作成さくせいすることがおおい。[[統一とういつモデリング言語げんご]](UML)の使用しようは、もうひとつのよくられた方法ほうほうである。出来できのよいデータモデルは、モデルされる外界がいかい可能かのう状態じょうたい正確せいかく反映はんえいする。たとえば、人々ひとびと複数ふくすう電話でんわ番号ばんごうつことができる場合ばあい、その情報じょうほう取得しゅとくすることが可能かのうとなる。すぐれた概念がいねんデータモデルを設計せっけいするには、アプリケーションの領域りょういき十分じゅうぶん理解りかいする必要ひつようがある。それには、一般いっぱんてきに、組織そしき関心かんしんっていることについてふかいをてる必要ひつようがある。たとえば「顧客こきゃく発注はっちゅうさきにもなりるのか?」、あるいは「ある製品せいひんが2種類しゅるい包装ほうそう形態けいたい販売はんばいされている場合ばあい、それらはおな製品せいひんか、それともことなる製品せいひんなのか?」、あるいは「飛行機ひこうきがニューヨークからフランクフルト経由けいゆでドバイまで場合ばあい、それは1便びんか2便びんか(または3便びんか)?」のような質問しつもんをする。これらの質問しつもんたいする回答かいとうによって、エンティティ(顧客こきゃく製品せいひん、フライト、フライト区間くかん)に使用しようされる用語ようご定義ていぎ、およびそれらの関係かんけい属性ぞくせい確立かくりつする。
 
概念がいねんデータモデルを作成さくせいする過程かていで、[[ビジネスプロセスモデリング|ビジネスプロセス]]からの入力にゅうりょくや、組織そしきないの[[ワークフロー]]分析ぶんせきからの入力にゅうりょく必要ひつよう場合ばあいがある。これによって、データベースにどのような情報じょうほう必要ひつようで、なに省略しょうりゃくできるかを特定とくていすることができる。たとえば、データベースに現在げんざいのデータだけでなく、過去かこ履歴りれきデータも保持ほじする必要ひつようがあるかどうかを決定けっていするのに役立やくだつ。
292ぎょう:
汎用はんようデータベースでもっと普及ふきゅうしているデータベースモデルはリレーショナルモデル、より正確せいかくには、SQL言語げんご表現ひょうげんされるリレーショナルモデルである。このモデルをもちいて論理ろんりデータベースを設計せっけいする過程かていでは、[[データベース正規せいき|正規せいき]]とばれる系統けいとうてきアプローチがもちいられる。正規せいき目的もくてきは、挿入そうにゅう更新こうしん削除さくじょ一貫いっかんせい自然しぜん維持いじすることで、おのおのの基本きほんてき事実じじつ」をいち箇所かしょにのみ記録きろくすることでなされる。
 
データベース設計せっけい最終さいしゅう段階だんかいでは、特定とくていのDBMSに依存いぞんする性能せいのう、スケーラビリティ、回復かいふく、セキュリティなどに影響えいきょうする決定けっていをする。これはしばしば「物理ぶつりデータベース設計せっけい」とばれ、[[物理ぶつりスキーマ (データベース)|物理ぶつりデータモデル]]を作成さくせいする。この段階だんかいでの重要じゅうよう目標もくひょうは{{Ill2|データの独立どくりつせい|en|Data independence}}である。これは、性能せいのう最適さいてきするためにおこなわれた決定けっていを、エンドユーザーやアプリケーションからえないようにすることを意味いみする。データの独立どくりつせいには2つのタイプがあり、物理ぶつりてきなデータ独立どくりつせい論理ろんりてきなデータ独立どくりつせいである。物理ぶつり設計せっけいおも性能せいのう要件ようけんによって推進すいしんされ、予想よそうされる作業さぎょう負荷ふかとアクセスパターンにかんする十分じゅうぶん知識ちしきと、選択せんたくしたDBMSが機能きのうについてのふか理解りかい必要ひつようとする。
 
物理ぶつりデータベース設計せっけいのもうひとつの側面そくめんはセキュリティである。これには、データベースオブジェクトへの[[アクセス制御せいぎょ]]を定義ていぎすることと、データ自体じたいのセキュリティレベルとメソッド(手順てじゅん)の定義ていぎ両方りょうほうふくんでいる。
300ぎょう:
[[File:Database models.jpg|thumb|upright=2|5種類しゅるいのデータベースモデルをりした。]]
 
[[データベースモデル]]とは、データベースの論理ろんり構造こうぞう決定けっていするデータモデルの一種いっしゅで、[[データ (コンピュータ)|データ]]をどのように格納かくのう整理せいり操作そうさするかの根本こんぽん規定きていするものである。データベースモデルのもっと一般いっぱんてきれいは、テーブルベースの形式けいしき使用しようするリレーショナルモデル(またはリレーションを近似きんじしたSQL)<!-- the SQL approximation of relational -->である。
 
データベースの一般いっぱんてき論理ろんりデータモデルをつぎにあげる。
348ぎょう:
データの概念がいねんビュー(または論理ろんりビュー)および物理ぶつりビュー(または内部ないぶビュー)は、通常つうじょう、1つしかないが、さまざまな外部がいぶビューはいくつでも存在そんざいすることができる。これにより、ユーザーは、技術ぎじゅつてきあるいは処理しょりてき視点してんからではなく、よりビジネスに関連かんれんした視点してんからデータベース情報じょうほうることができるようになる。たとえば、企業きぎょうの[[経営けいえい財務ざいむ|財務ざいむ]]部門ぶもん会社かいしゃ経費けいひ一部いちぶとしてぜん従業じゅうぎょういん支払しはらい明細めいさい必要ひつようとするが、[[ヒューマンリソース|人事じんじ]]部門ぶもん関心事かんしんじである従業じゅうぎょういんかんする明細めいさい必要ひつようない。このように、部門ぶもんによって、企業きぎょうデータベースにはことなるビューが必要ひつようとなる。
 
さんそうデータベース・アーキテクチャは、リレーショナルモデルの主要しゅよう初期しょき推進すいしんりょくの1つであった{{Ill2|データの独立どくりつせい|en|Data independence}}の概念がいねん関連かんれんしている。このかんがかたは、あるレベルでおこなわれた変更へんこうは、よりたかいレベルのビューに影響えいきょうあたえないというものである。たとえば、内部ないぶレベルの変更へんこうは、概念がいねんレベルのインタフェースを使用しようして記述きじゅつされたアプリケーションプログラムには影響えいきょうしないので、性能せいのう向上こうじょうさせるために物理ぶつりてき変更へんこうくわえてもその影響えいきょう軽減けいげんすることができる。
 
概念がいねんビューは、内部ないぶビューと外部がいぶビューのあいだ間接かんせつてきなレベルを提供ていきょうする。一方いっぽうでは、ことなる外部がいぶビュー構造こうぞう依存いぞんしないデータベースの共通きょうつうビューを提供ていきょうし、また他方たほうでは、データがどのように格納かくのうされ管理かんりされるかという詳細しょうさい内部ないぶレベル)を抽象ちゅうしょうする。原則げんそくとして、すべてのレベルの、さらにはすべての外部がいぶビューは、ことなる[[データモデル]]表現ひょうげんすることができる。実際じっさいには通常つうじょう特定とくていのDBMSは外部がいぶレベルと概念がいねんレベルの両方りょうほうおなじデータモデルを使用しようする(れい: リレーショナルモデル)。内部ないぶレベルは特定とくていのDBMSの内側うちがわかくされており、(その実装じっそうにも依存いぞんするが)ことなるレベルの詳細しょうさい要求ようきゅうされ、独自どくじ種類しゅるいのデータ構造こうぞうがたもちいられる。
 
外部がいぶ概念がいねん、および内部ないぶレベルを分離ぶんりすることは、[[21世紀せいき]]のデータベースを支配しはいするリレーショナルデータベースモデルの実装じっそうにおけるおおきな特徴とくちょうであった{{sfn|Date|2003|pages=31–32}}。
 
== 研究けんきゅう ==