関係データベース(リレーショナルデータベース)と表(table)

関係データベース(リレーショナルデータベース)は、関係モデルに基づいて設計されたデータベースであり、現代データベース技術の主流をなすものです。

関係(relation)は、通常、表(table)として表現されます。

ここでは、関係モデルの用語について、下記の出典から引用します。

引用文献: 「PROLOG データベース・システム」発行:近代科学社 原著者:D. リー 翻訳者:阿部憲広

 

関係(relation)

集合D1、D2, …, Dn があるとき、Rがこのn個の集合上の1つの関係であるとは、Rが(d1, d2, …, dn)という形をした順序をもったn組の集合であるときとする。ここでd1はD1に、d2はD2に、そしてdnはDnに属する。関係は普通、表(table)として表す。属性(attribute)は表の列に対する見出しであり、表の行が組を表す。したがって表と関係とを区別せずに用いる。

関係スキーム(relation scheme 属性の集合を関係スキームといい、属性は関係を表す表の縦方向に対する名前である。関係スキームは時間に対して不変であると仮定されるが、対応する関係は頻繁に変化する。

次数(arity) 関係の次数とは、その関係が表している表が持つ列の数である。次数が1の関係を1項関係、次数が2の関係を2項関係、次数nの関係をn項関係という。

属性(attribute) 関係の属性とは、関係を表した表の列に対する名前であり、属性値は列の内容のことである。

定義域(domain) 定義域とは、関係の属性値集合がとりうる値の集合である。すなわち表の列の値がとる値の範囲をいう。定義域と列の違いを理解することが大切である。列は1つの関係の中で定義域が果たす役割りを表す。

組(tuple) 組を表の行とすると、関係は組の数学的集合であると考えることができよう。各組は数学的集合の要素であるから、関係中の各組は一意的である。

素数(cardinality) 関係Rの要素数 |R| は、Rに含まれる組の数をいう。

完全性の制約(integrity constraints) 完全性の制約とは、データベース中の各データが従わなければならない言明をいい、データベースの整合性がこの制約によって守られる。データ従属性(data dependency)は完全性の制約の特殊な場合である。

関数従属(functional dependency: FD) 関数従属 X→Y は関係スキームに関する言明である。t1, t2という組が属性集合Xに対して同じ値をとるなら、属性集合Yに対しても同じ値をもつことをいう。すなわち、t1[X] = t2[X] ならば、t1[Y] = t2[Y] が成り立つ。

多値従属(multivalued dependency: MVD) t1とt2とがX→→YとX→Yとを満たす関係の組であれば、この関係は次の条件を満たす3番目の組t3をもたなければならない。すなわち、t3は組の一方たとえばt1から属性Yの値をとり、その他の値のすべてを残る組t2からとったものでなければならない。別の言い方をすると、X→→Yは、ある特別の属性Xの値と関連した属性Yの値の集合は他の属性値と独立でなければならない、ということである。

キー(key) FDとMVDの点から考えて、一意的な識別子として働きうる属性集合の中で最小の属性集合を候補キーと呼ぶ。1つの関係が複数の候補キーをもつこともある。

正規化(normalization) 正規化定理は関係スキームの望むべき性格を従属性の型に関連づける。正規化によって、指定した型の従属性による冗長性を減らすことができる。

正規化された関係(normalized relation) 正規化された関係とは、それ以上分解できない値をもった表のことであり、基本表または基本関係と呼ばれることがある。

データベース(database) データベースは関係の集合であり、これらの関係のスキームが集まってデータベース・スキームを形成する。 要約すると、関係データベースDBは集合 R={Ri} であり、属性DとDのもつ関係、すなわち依存性Fの集合をもつ対象の記述である。各関係Riは関係スキームと呼ばれる属性集合 Si={Dj|Dj?D} により特性化され、組の集合から構成される。各組は、関係スキームの属性から、F中のすべての依存性を満たす定義域への写像である。

チャールズ・シモニーのライバルたち(その2)

ジョナサン・サックス(ロータス1-2-3の開発)語録

  • 1-2-3の開発に取り組んでいた十ヵ月間というものは、ただただ、食べる、眠る、働く、の繰返しでした。
  • 私は、他人がつくったツールとかプログラム、あるいは、自分の手に余るようなものを使うのが嫌なんです。
  • 私は、特に創造力の豊かな人間というわけではありません 私の真価は、アイデアを総合して、すばらしいパッケージをつくるところにあります。
  • イノベーションの発生率は、かなり低いんです。ほんとうに新しいアイデアは、十年に二つ、三つ生まれればいい方でしょう。

ピーター・ロイゼン(T/Makerの開発)語録

  • 目を外に向ければ、大きな世界が広がっています―今から百年もすれば、このプログラムは何だったんだろう、と子孫たちは思うことでしょう。
  • 私の場合には、腰を下ろし、机に足を投げ出して、イーゼルに絵でも描くようにして、キーボードに手を伸ばすんです。
  • 私の場合には、コードの内容だけでなく、その外見についても気を使うようにしてるんです。

引用文献:
「実録! 天才プログラマー」発行:アスキー出版局

デザイナ(ランチャー)を起動する(開く)


明けましておめでとうございます。本年もよろしくお願いします。

xoBlos クライアントの顔である、デザイナ(ランチャー)を、年明け早々に開けてみました(起動してみました)。


アイコンをクリックして開く

白紙の状態で開くには、デスクトップ上のショートカットアイコンをダブルクリックして開きます(または右クリック [開く] で)。

f:id:xoblos:20210102122852p:plain

まだ何の手順も定義されていない状態で開きます。 無念無想で、今年一年に作成する業務定義・手順を想像してみましょう。

f:id:xoblos:20210102122825p:plain

このような開き方としては、デスクトップアイコンからの他に、Windows [スタート] のアプリ一覧 [X] のインデックスにある、[xoBlos Client]-[xoBlos Designer Advanced] からも開けます([スタート] や [タスクバー] にピン留めしたアイコンからも)。

f:id:xoblos:20210102124458p:plain


業務定義ファイルをクリックして開く

通常は、既に定義済み(作成済み)の業務定義ファイルをダブルクリックして開きます。

拡張子が .xbt(または .xob)の業務定義ファイル

f:id:xoblos:20210102122245p:plain

開いた業務定義を編集したり実行する

f:id:xoblos:20210102122217p:plain

チャールズ・シモニーのライバルたち(その1)

チャールズ・シモニーたちがMicrosoft社でExcelを開発した頃のお話です。

今年(2020年)は、Excel生誕36周年(海外での発売は1984年)

 その当時、Excelと同じジャンル(カテゴリ)のソフトウェア製品は、世の中に既に出回っていました。いわゆる、スプレッドシートソフト表計算ソフトというジャンルです。

 チャールズ・シモニー自身が、Microsoft社で開発の指揮をとった「Multiplan」は、既にIBM-PC上で成功を収めており、その他、スプレッドシートソフトのアイデアの原型となった「VisiCalc」や「T/Maker」が販売され、中でも「ロータス1-2-3」が全米で大ヒットしていました。

 これらのスプレッドシートソフトを開発したプログラマーたちにインタビューした記事が、「実録! 天才プログラマー」(発行:アスキー出版局)という本にまとめられています。残念ながら、この本は絶版となっているようですが、以下のような興味深い談話が記録されています。

  ダン・ブリックリン(VisiCalcのデザイン)語録

  • 私にとって、プログラムで一番重要な部分は、データ構造のレイアウトなんです。
  • われわれは、ユーザーがますます自分でプログラミングをやるように仕向けてるわけですが、ユーザーはそのことに気づいてないんですね。

  ボブ・フランクストン(VisiCalcの開発)語録

  • 観念は、消えることがありません。形を変えて、他の観念と合流するんです。
  • 電話をかけられる人なら、間違いなく誰もがプログラムを書けるんです。
  • もし、自分のプログラムを自分自身に説明できないようなら、コンピュータがそれを正しく理解してくれる可能性も、かなり少なくなりますね。

引用文献:
「実録! 天才プログラマー」発行:アスキー出版局

制御シートキーワード:直データ

生成制御シートの [変換入力] セクションは、[基本入力] の項目の値を、ここで設定した対応に従い変換します。

[マッチキー] に指定した項目の値をキーにして、指定したXMLファイル(マスターファイルなど)の [入力項目名] のキー値を参照して変換するのが普通ですが、 [直データ] キーワードを使うと、マスターファイルが存在しない場合も、キー項目と変換結果の値を直接記述できます。

 リファレンスより抜粋

ファイルの代わりに直接データを記述できる。複数行可能。ファイルと同時には指定できない。「直データ」で値を設定する項目の「入力項目名」には#を付けないでください。


【ファイル構成と入力XMLデータの例】

f:id:xoblos:20201217053727p:plain

【出力結果(結果.xlsx)】

f:id:xoblos:20201217053714p:plain

【制御シート(生成.xlsx の「生成」シート)】
f:id:xoblos:20201217053657p:plain

注記

直データ指定の場合の [変換入力]-[入力項目名] は、「item1」など名前は何でも構いません。[変換入力]-[入力項目名] には#を付けないでください。

【ひな形シート(生成.xlsx の「ひな形」シート)

f:id:xoblos:20201217053623p:plain

デザイナの文脈依存ヘルプ

下図は、デザイナで「変換(CSV→抽出データ)」手順を選んでいる画面です。

f:id:xoblos:20201214003731p:plain

[この手順の設定] の [処理の動作設定] バーの右端の [?] をクリックすると、オンラインヘルプの 「変換(CSV→抽出データ)」手順についてのトピックが表示されます。

f:id:xoblos:20201214003752p:plain

このように、各手順の使い方を知りたいときは、[?] をクリックして文脈依存ヘルプ(該当手順についてのヘルプトピック)を表示できます。

今年(2020年)は、Excel生誕36周年(海外での発売は1984年)

マイクロソフト社のチャールズ・シモニーたちが Excel を開発した頃

Excel の海外での発売は、1984年のことです。何と、アップル社のMac表計算ソフトとして発売されました。 Excel の開発にどれぐらいの期間がかかったかは調べていませんが、1984年にいたる1981年~1984年までのコンピュータ関連の主なトピックを、海外と日本とで年表にまとめてみました。

海外 日本
1981 マイクロソフトMS-DOSを開発、表計算ソフト「Multiplan」を発売。IBMが「IBM-PC」を発売し、パソコン市場に進出。UNIX 4.1 BSD(Cシェル)が開発される。 内閣から常用漢字表(1,945字の漢字表)が告示される。東京で「第5世代コンピュータ国際会議」開催。
1982 Sun Microsystems社誕生(UNIX BSD互換機)。MCCが第5世代コンピュータ開発開始。 75万円のワープロ「MY-OASYS」(100万円を切るワープロ)が富士通より発売。ICOTが第5世代コンピュータ開発開始。
1983 表計算ソフト「ロータス1-2-3」全米でヒット。UNIX System-Ⅴ R1発表。 通称「新JIS漢字」の制定。JIS X 0208-1983(6,877字の文字表)が日本規格協会から出される。
1984 スーパーミニコン「VAX86009」(DEC)、新型パソコン「AT」(IBM)、32ビット「マッキントッシュ」(アップル)。Mac表計算ソフト「Excel」発売(マイクロソフト)。DEC社、UNIX 4.2 BSD 互換機ULTRIX発売開始。 坂村健TRON計画」発案。