Oracle 質問総合スレ14 (812レス)
1-

643
(1): 2022/12/20(火)18:27 ID:GPbhHUoK(3/4) AAS
>>637
自分で文字列というものはないと言っている
文字列は文字列という概念を初めから持ったプログラミング言語やデータベースのことをいう。

メモリのデータが文字、連続したメモリのアドレスに格納されているデータが文字というのは文字列という概念を持っているプログラミング言語ではない。
644
(1): 2022/12/20(火)18:35 ID:GPbhHUoK(4/4) AAS
文字列が格納されているメモリの先頭アドレスに文字列長を持たせるのも同じように思うかもしれないが、

ゴッド博士のデータベースの考え方は、値がないなら値がないとはっきりわかるようにすべきというもの。

空文字列を用意すると、空文字列に特定の意味を持たせる使い方をされるので、これは空文字列、空文字列、空文字列と騒いでいるやつのように製品としては何も制御できなくなる。
645: 2022/12/20(火)18:49 ID:??? AAS
>>643
> 自分で文字列というものはないと言っている
はあ?
どこでそんなアホなこと言ってるんだよ

> 文字列は文字列という概念を初めから持ったプログラミング言語やデータベースのことをいう。
LISPには文字列の概念はある
Emacs とか知らんのか?

> メモリのデータが文字、連続したメモリのアドレスに格納されているデータが文字というのは文字列という概念を持っているプログラミング言語ではない。
お前のアホ定義で語られてもなw
646: 2022/12/20(火)22:42 ID:??? AAS
>>615
ここに挙げられた各論文・書籍を見てきたけどボラクル君の主張は完全なウソだったわ
誤解とか誤読のレベルじゃなく完全な嘘つき

まともにNULLについて言及されてるのは最後の書籍だけで
その内容はコッドの12ルールにあるNULLのルールと基本同じ

Rule 3: Systematic Treatment of NULL Values
NULL values (distinct from empty character string or a string of blank characters and distinct from zero or any other number) are supported in the fully relational RDBMS for representing missing information in a systematic way, independent of data type.
647: 2022/12/21(水)14:55 ID:??? AAS
>644
>空文字列を用意すると、(略)製品としては何も制御できなくなる
世にある大半のRDBMSではちゃんと空文字列をNULLと区別して制御してるんだが?
世にある大半のプログラム言語では、空文字列とヌルポは別物なんだが?

制御できなくなるのは製品の問題じゃなくて、設計/運用する奴がダメだからだ

ORACLEがなぜそれを区別できない設計にしたのかはしらん
ORACLEではそういうものだとして扱えば良いだけ
それがORACLE自身の主義主張に基づくなら、ちゃんとその主張は啓蒙すべきだがな
ただ、世の大半でできることができないのは欠陥だといわれてもしょうがないな

つかVarchar2とかやめて、Varcharを標準的なNULLの仕様にすれば良いDBなんだがなぁ
648: 2022/12/21(水)16:38 ID:??? AAS
>>642
>文字列をフェチしてすぐにNULLと判断できるデータが入っている

ボラクル君はNULLと判断するためは文字列のフェッチが必要だと思ってるんだwww
書けば書くほど無知を晒してるねw
649: 2022/12/21(水)17:39 ID:??? AAS
そもそも他のDBMSでもNULLはあるから
> ゴッド博士のデータベースの考え方は、値がないなら値がないとはっきりわかるようにすべきというもの。
と言うのはOracleにはなんのアドバンテージもないんだけどね

> 空文字列を用意すると、空文字列に特定の意味を持たせる使い方をされるので、これは空文字列、空文字列、空文字列と騒いでいるやつのように製品としては何も制御できなくなる。
意味を持たせるのは分かるけど製品として何も制御出来なくなるとか意味わからん
まあ本人も何を言いたいのかよくわかってないんだろうなw
650
(1): 2022/12/21(水)18:15 ID:??? AAS
Oracleは文字列に限らずzero-lengthかどうかでNULLかどうかを判断するデータ構造になってる
NULLでもレコード末尾のNULL以外は長さ0を格納するために1バイト使う

1つのデータ項目を2つの意味使うというDB設計初心者でもやらないような欠陥なんだが
標準に合わせるためにはレコードのデータ構造とNULLの判断に関わる部分を全面的に修正する必要があるので
コストが大きすぎて手が出せない
651
(1): 2022/12/21(水)18:44 ID:??? AAS
>>650
> Oracleは文字列に限らずzero-lengthかどうかでNULLかどうかを判断するデータ構造になってる
また嘘書いてるなw

IS NULL関数に長さ0(ゼロ)の初期化済LOBを渡すと、0(ゼロ、FALSE)が戻されます。
外部リンク[htm]:docs.oracle.com
652
(1): 2022/12/21(水)22:37 ID:??? AAS
>>651
分かっていってるんだと思うが
LOBの場合はNULLかどうかの判断に使ってるcolumn lengthにはlocatorの長さが格納されてる
行の中に実際格納されてるのはlocatorだけだから

同じ箇所に書いてある↓
「LOBで使用すると、IS NULLおよびIS NOT NULL演算子によってLOBロケータが行に格納されているかどうかが判別されます。」
653: 2022/12/21(水)22:43 ID:??? AAS
これ見てもらうといいのかな
画像リンク[gif]:docs.oracle.com

他のDBMSはnullableなカラムがある場合は
row headerにnullかどうかを判断するためのbitmapが追加される方式が一般的
Oracleはそういう仕組みを持ってないからzero-lengthをNULLとして扱ってる
654
(1): 2022/12/21(水)22:48 ID:??? AAS
>>652
だから
> Oracleは文字列に限らずzero-lengthかどうかでNULLかどうかを判断するデータ構造になってる
が間違いだという指摘なんだけど?
わざわざ恥の上塗り乙
655
(1): 2022/12/21(水)23:48 ID:??? AAS
>>654
君の言うlengthと俺の言うlengthが違うだけ
OracleがなぜANSI準拠にできないのか仕組みを説明してあげたつもりだったんだがわかんないなら別にいい
656: 2022/12/22(木)04:50 ID:??? AAS
>>655
> 君の言うlengthと俺の言うlengthが違うだけ
はあ?
わけわからん長さの定義出されても困るわ

> OracleがなぜANSI準拠にできないのか仕組みを説明してあげたつもりだったんだがわかんないなら別にいい
ポンコツOracleの仕組みなんてどうでもいいしw
657: 2022/12/23(金)21:13 ID:??? AAS
決着付いた?
658: 2022/12/23(金)23:07 ID:??? AAS
決着?
ボラクル君が遊ばれてるだけだよ
659: 2022/12/26(月)13:14 ID:P+HWBCzm(1/2) AAS
OracleDBのデータファイルはちゃんと領域を確保するまっとうな仕組み。
660: 2022/12/26(月)13:32 ID:P+HWBCzm(2/2) AAS
コッドがあとからNULL以外に「空」を追加したから、後発製品には「空」があるだけ。

空文字列にアプリケーション上の意味を持たせた設計はアンチパターン。

空文字列の場合は何かを意味するとしてしまうのはよくない。

数値型のときの「空」がゼロなのもよくない。
意図せずにゼロが入るのは完全な誤り。
661
(2): 2022/12/26(月)19:41 ID:??? AAS
空文字列なんて、ただの長さゼロの有効な文字列なんだが
空文字列なんて、ただの長さゼロの有効な文字列なんだが
数値の空は0ではだめなのに
文字列の空は空文字列でもいいと?

コッドが追加したNULL以外の空ってなに?
662: 2022/12/27(火)00:31 ID:??? AAS
CoddのDBMSはSystem Rで、それが是だろ
1-
あと 150 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.010s