Más contenido relacionado セル結合を含む表のデータモデル2. Background
多数のセルからなる表 (table) は、日常の様々な場面で利用される
• 実世界では、セル結合を含む表が多用される
• 一方、セル結合を使うとデータの機械的な再利用性が低下するため、利
用すべきでないとする議論もある (e.g. バッドデータ, 「ネ申 Excel」)
⇦ 適切なデータモデルがないことが問題では?
Research purpose
セル結合を含む表に対応するよう、関係データモデルを拡張
国名 大学数 学部生 院生
日本 783 256 26
アメリカ 2,719 1,213
イギリス 164 154
⋮
中国 1,090 1,180 141
Table: セル結合を含む表の例 (学生の単位は万人、出典:文科省 [5])
2 / 16
3. Previous works
nested relation
第一正規形 (1NF) の定義を満たさない関係の例
name address birthdate movies
Fisher
city street
Maple H'wood
Locust Malibu
9/9/99
title year length
Star wars 1977 124
Empire 1980 127
Return 1983 133
Hamill
city street
Oak B'wood
8/3/88
title year length
Star wars 1977 124
Empire 1980 127
Return 1983 133
Figure: nested relation の例 (出典:DBInfoBlog[1])
3 / 16
4. Previous works
nested relation とセル結合を含む表の違い (1)
属性間の階層関係が一定でない
• 前頁の表のスキーマは次のように表せる
R(name, address(city, street), birthdate, movies(title, year, length))
• 下表のスキーマは定義できない (次のどちらも間違い)
R(R1(col1, col2), col3, col4)
R(col1, R2(col2, col3), col4)
col1 col2 col3 col4
val1 vala valA
valαval2 valb
val3 valC
Figure: セル結合を含む表の例 (再掲)
4 / 16
5. Previous works
nested relation とセル結合を含む表の違い (2)
階層関係にある属性の間の関係性 (セマンティクス) を考慮していない
• 下表では、セル結合の前の属性と結合後の属性の間に、「結合後の属性
は結合前の属性の合計である」というセマンティクスが存在
• nested relation の理論では nest,unnest の際にセマンティクスを考慮し
ない (Jaeschke et al., 1982) ため、下表をデータとして活用できない
国名 学部生 院生
日本 256 26
アメリカ 1,213
イギリス 154
⋮
中国 1,180 141
Table: 学生数の国際調査
5 / 16
6. Previous works
データキューブ (OLAP キューブ)
OLAP(オンライン分析処理) で用いられるデータ構造 [2]
• roll-up: 集約関数により 1 つ以上の属性について集計
• drill-down: 集計したものを細分化する、roll-up の逆操作
⇨ 本研究では、集約関数をセル結合のセマンティクス記述に、roll-up,
drill-down をセルの結合・分割操作に援用
学部生 院生
日本 256 26
韓国 203 32
中国 1,180 141
Table: roll-up 前
学部生 院生
ALL 1,639 199
Table: 総和関数での roll-up 後
6 / 16
7. Advantages and Disadvantages of merged cells
Advantage
人間にとって扱いやすい
• 表の視認性が向上 (表の理解に必要なテキスト量が減少)
• 表の更新不整合が生じない (一箇所を更新するだけで OK)
• 個々の属性値が分からず、集計値しかないデータを記録できる
券種 大人 中高生
一般 1,000 600
団体 800 400
障害者手帳所持者 300
Table: 博物館入館料 (出典:トヨタ博
物館)
国名 学部生 院生
日本 256 26
アメリカ 1,213
イギリス 154
フランス 130
ドイツ 199
韓国 203 32
中国 1,180 141
Table: 学生数の国際調査
7 / 16
8. Advantages and Disadvantages of merged cells
Disadvantage
機械にとって扱いにくい
• セル結合のセマンティクス (意味) が不明瞭に
(表の作者はどのような意図でセルを結合したのか?)
• 表の再利用性が低下
(プログラムで扱うのが困難)
⇨ 各種の集計に用いることが困難に
(セル結合を含むとデータとして使い物にならない)
国名 学部生 院生
日本 256 26
アメリカ 1,213
イギリス 154
⋮
中国 1,180 141
Table: 学生数の国際調査
8 / 16
9. Advantages and Disadvantages of merged cells
人間 機械
作成側
利用側
× 既存のDBMSで扱えない
× セル結合した意味の推測が困難
× 再利用性の低下
× 特定セルの値の取得が困難
× 行の整列ができなくなる
○ 表の視認性が向上
○ 冗長性が低減
○ 更新不整合が生じない
○ 集約値を記録することが可能
Figure: セル結合の利点と欠点
Approach
• セル結合の属性値が何を表すのかを明確にする
⇨ 集約関数によるセマンティクスの記述
• 機械的に再利用可能、特に集計機能への応用が可能
⇨ roll-up, drill-down によるセルの結合・分割操作を定義
9 / 16
10. Proposing Datamodel
Schema
セル結合を含む表のスキーマを (R, T, F) の 3 つ組で表現
• R は関係スキーマ
• T = (VT , ET ) は属性の階層関係を表す有向無閉路グラフ (DAG)
※ 但し行方向のセル結合を表すため、T の葉は閉路を持っても良いとする
• F は T で用いる集約関数の集合
集約関数
セル結合前の属性値からセル結合後の属性値への関数
• sum: 結合前の属性値の和 (sum(1, 3) = 4)
• pack: 結合前の属性値がすべて同じならその値、そうでなければ組
(pack(1, 1) = 1, pack(1, 3) = (1, 3))
10 / 16
11. Proposing Datamodel
学部生 院生
大学生
Figure: DAG T
下表のスキーマ (R, T, F) は、
• R = 学生数 (国名, 大学数, 学部生, 院生)
• VT = { 学部生, 院生, 大学生 }
• ET = { 学部生 → 大学生, 院生 → 大学生 }
• 学部生 + 院生 = 大学生 なので、
F = {sum ∶ 学部生 × 院生 → 大学生}
国名 大学数 学部生 院生
日本 783 256 26
アメリカ 2,719 1,213
イギリス 164 154
フランス 91 130
ドイツ 409 199
韓国 179 203 32
中国 1,090 1,180 141
Table: 学生数の国際比較 (再掲) 11 / 16
12. Proposing Datamodel
Instance
スキーマ (R, T, F) のインスタンス I を、組の有限集合と定義
• 組 x は属性名から属性値 (セルの値) への写像
学部生 院生
大学生
下表では、x1, ⋯ , x7 を定義し I = {xi} とする
• x1(学部生) = 256, x1(大学生) = undefined
• x2(学部生) = undefined, x2(大学生) = 1213
国名 大学数 学部生 院生
x1 日本 783 256 26
x2 アメリカ 2,719 1,213
x3 イギリス 164 154
⋮
x7 中国 1,090 1,180 141
Table: 学生数の国際比較 (再掲)
12 / 16
13. Proposing Datamodel
roll-up
集約関数 f (∈ F) に従って階層関係にあるセルを結合する操作
▵f I ∶= {▵f x ∣ x ∈ I}
▵f x(A) ∶=
f (x(dom(f ))) (A = im(f ))
x(A) (otherwise)
drill-down
集約関数 f (∈ F) の逆関数 f −1
に従ってセルを分割する操作
▿f I ∶= {▿f x ∣ x ∈ I}
▿f x(A) ∶=
v s.t. f (⋯ , v, ⋯) = x(im(f )) (A ∈ dom(f ))
x(A) (otherwise)
※ f に逆関数が存在すれば可能 (このとき roll-up と drill-down は逆操作)
13 / 16
14. Proposing Datamodel
roll-up の例
左表を関数 sum で属性「学部生」「院生」を roll-up すると、右表が得られる
左表を保持することで、次の集計が可能に:
• 学部生・院生の人数比較など、左表でしかできない集計
• 1 大学あたりの学生数の算出など、右表でしかできない集計
国名 大学数 学部生 院生
日本 783 256 26
アメリカ 2,719 1,213
イギリス 164 154
⋮
中国 1,090 1,180 141
Table: 学生数の国際比較 (再掲)
国名 大学数 大学生
日本 783 282
アメリカ 2,719 1,213
イギリス 164 154
⋮
中国 1,090 1,321
Table: 関数 sum による roll-up 後
14 / 16
15. Proposing Datamodel
drill-down の例
上表を関数 pack で属性「中学生以上」を drill-down すると、下表が得られる
⇨ 上表を保持しておけば、必要なときに下表に変換可能
券種 大人 中高生 小学生 幼児
一般 1,000 600 400 無料
団体 800 400 300 無料
障害者手帳所持者 300 200 無料
Table: 博物館入館料
券種 大人 中高生 小学生 幼児
一般 1,000 600 400 無料
団体 800 400 300 無料
障害者手帳所持者 300 300 200 無料
Table: 関数 pack による drill-down 後
15 / 16
19. Previous works
「ネ申 Excel」
巧妙だが再利用性の低い Excel ファイル (奥村ら [6], 2013)
• 機械でなく人間が用いることを意図したバッドデータ
• 緊急時には再利用性の低さが人命に関わることも
• 下表では、2 種類の Cs 同位体の合計値をセル結合で示しているが、機
械的には (人間でも人によっては) そのような作成者の意図を認識でき
ない
検査機関 採取日
○○検査機関 H23.10.1 5 5 5
◇◇検査機関 H23.10.1 - 25 25
△△検査機関 H23.10.1 10 10
☆☆検査機関 H23.10.1 - 25 25
131
I 134
Cs 137
Cs
134
Cs,137
Cs
の合計値
Figure: 「ネ申 Excel」の例 (単位は Bq/kg、引用元:厚労省 [4])
19 / 16
21. Proposing Datamodel
集約関数
セル結合前の属性値からセル結合後の属性値への関数
• sum: 結合前の属性値の和 (sum(1, 3) = 4)
• avg: 結合前の属性値の平均値 (avg(1, 3) = 2)
• max: 結合前の属性値の最大値 (max(1, 3) = 3)
• cat: 結合前の属性値を連結した値 (cat(c, a, t) = cat)
• tuple: 結合前の属性値の組 (tuple(1, 3) = (1, 3))
• pack: 結合前の属性値がすべて同じならその値、そうでなければ組を
返す
(pack(1, 1) = 1, pack(1, 3) = (1, 3))
21 / 16
22. Proposing Datamodel
Instance
スキーマ (R, T, F) のインスタンス I を、組の有限集合と定義
• 組 x は属性名からセルへの写像
• セルは 3 つ組 (vij, g, f ) からなり、それぞれセルの値 vij、セルが属する
グループ g、値が有効かを表すフラグ f である
Group
グループは、行方向のセル結合を表す組の有限集合
22 / 16
23. Proposing Datamodel
学部生 院生
大学生
Figure: DAG T
下表の例では、
• x1(国名) = (日本, null, True), x1(学部生) =
(256, null, True), x1(大学生) = undefined
• x2(学部生) = undefined,
x2(大学生) = (1213, null, True)
• 以下、同様に x3, ⋯ , x7 を定義し、I = {xi} とする
国名 大学数 学部生 院生
日本 783 256 26
アメリカ 2,719 1,213
イギリス 164 154
フランス 91 130
ドイツ 409 199
韓国 179 203 32
中国 1,090 1,180 141
Table: 学生数の国際比較 (再掲)
23 / 16
24. Classifying tables
セル結合の適切さによる表の分類
セル結合の適切さに応じて、セル結合を含む表を C0, C1, C2 の 3 種に分類
(C2 ⊂ C1 ⊂ C0)
• C0: セル結合を含む任意の表 (R, T, F) が属する集合
• C1: セル結合に関数従属性 (FD) が認められる表が属する集合
(但し、集約関数は人間 or 機械が推測するしかない)
• C2: セル結合が従属する集約関数が明示された表が属する集合
結合前の属性値から結合後の属性値を機械的に計算できる
検査機関 採取日
○○検査機関 H23.10.1 5 5 5
◇◇検査機関 H23.10.1 - 25 25
△△検査機関 H23.10.1 10 10
☆☆検査機関 H23.10.1 - 25 25
131
I 134
Cs 137
Cs
134
Cs,137
Cs
の合計値
24 / 16
25. Classifying tables
roll-up, drill-down 正規形
• roll-up 正規形 (RUNF): roll-up により 1NF に変換できる表
• drill-down 正規形 (DDNF): drill-down により 1NF に変換できる表
※ 「1NF に変換できる」のは、属性のすべてのドメインがシンプルである
(集合や冪集合でない) とき
25 / 16
26. Reference I
DBInfoBlog. Nested Relations. 2013. url:
http://www.dbinfoblog.com/post/121/nested-relations.
Jim Gray et al. “Data Cube: A Relational Aggregation Operator Generalizing Group-By,
Cross-Tab, and Sub-Totals”. In: Data Mining and Knowledge Discovery 1.1 (1997),
pp. 29–53. doi: 10.1023/A:1009726021843.
Bin Liu and H.V. Jagadish. “A Spreadsheet Algebra for a Direct Data Manipulation Query
Interface”. In: Data Engineering, 2009. ICDE ’09. IEEE 25th International Conference on.
2009. doi: 10.1109/ICDE.2009.34.
厚生労働省. 食品中の放射性物質の検査結果について. 2011. url:
http://www.mhlw.go.jp/stf/houdou/2r9852000001q51k-att/2r9852000001qjsv.pdf.
文部科学省. これからの大学教育等の在り方について (教育再生実行会議第三次提言). 2013.
url: http://www.mext.go.jp/b_menu/shingi/chukyo/chukyo0/gijiroku/attach/__
icsFiles/afieldfile/2013/10/16/1340415-9-2.pdf.
奥村 晴彦. “「ネ申 Excel」問題”. In: 情報処理学会情報教育シンポジウム SSS2013 論文集
(2013), pp. 93–98. url: http://oku.edu.mie-u.ac.jp/~okumura/SSS2013.pdf.
26 / 16