创建类型-惯性器件详解:SQL语句与数据定义

需积分: 46 26 下载量 58 浏览量 更新于2024-08-09 收藏 4.77MB PDF 举报
在达梦SQL语言中,"创建类型-惯性器件(下)"这一章节详细介绍了如何使用CREATE TYPE语句来创建不同类型的数据库对象。这些对象包括记录类型、对象类型、数组和集合类型。创建类型的关键在于理解其语法结构,以及如何定义各个类型的具体内容。 - 记录类型定义:使用RECORD关键字,后跟一组变量列表定义,用于表示一个自包含的数据结构,每个变量都有其数据类型和可能的属性。 - 对象类型定义:包括对象如变量、过程、函数和构造函数。对象定义子句允许指定对象是否为静态或成员类型,以及是否具有继承属性(如重载和final属性)。 - 数组类型定义:使用ARRAY关键字,指定数据类型和可选的维度常量表达式,定义了固定大小的元素集合。 - 集合类型定义:集合类型可以是VARRAY(变长数组)、嵌套表(TABLE OF)或索引表(TABLE OF WITH INDEX BY),它们分别对应不同存储方式的数组。 在创建类型时,还可以考虑安全性,通过`WITH ENCRYPTION`选项启用加密,以及指定调用权限,例如AUTHID DEFINER或AUTHID CURRENT_USER,控制哪些用户可以执行这些类型。 此外,章节还提到了DM_SQL语言的其他核心概念,如数据类型(常规、位串、日期时间、多媒体等)、表达式(数值、字符串、时间值和时间间隔值)以及运算符的优先级。语言还支持数据库模式管理,包括模式的定义、切换、删除,以及用户管理、表空间管理、表定义(包括基表、索引、位图连接索引和全文索引的创建、修改和删除)等操作。 这部分内容对于理解达梦数据库系统中的数据结构设计和对象管理至关重要,熟练掌握这些语法规则有助于开发人员高效地创建和维护数据库架构。在实际应用中,理解并灵活运用这些创建类型的功能,能够提高数据库设计的灵活性和性能优化能力。

import numpy as np import matplotlib.pyplot as plt %matplotlib inline from sklearn.datasets import load_digits data, labels = load_digits(return_X_y=True) (n_samples, n_features), n_digits = data.shape, np.unique(labels).size print(f"# 类别数: {n_digits}; # 样本数: {n_samples}; # 特征数: {n_features}") print(data[:2]) from time import time from sklearn.pipeline import make_pipeline from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans kmeans=KMeans(n_clusters=10, random_state=42) ### 创建管道并训练,记录训练时间 t0 = time() estimator = make_pipeline(StandardScaler(), kmeans).fit(data) fit_time = time() - t0 print("训练时间:", fit_time) ### 通过惯性(inertia)聚类的性能 print(estimator) print(estimator[-1].inertia_) result1={"fit-time":fit_time,"inertia:":estimator[-1].inertia_ } from sklearn.decomposition import PCA ### ??编程使用PCA分解,得到10个主成分,放到变量 components 中--------------------------- pca = PCA(n_components=10) components = pca.fit_transform(data) ###------------------------------------------------------------------------- ### 创建KMeas对象 kmeans=KMeans(n_clusters=10, init="k-means++", random_state=42) ### 创建管道并训练,记录训练时间 t0 = time() estimator = make_pipeline(StandardScaler(), kmeans).fit(data) fit_time = time() - t0 print("训练时间:", fit_time) ### 通过惯性(inertia)聚类的性能 print(estimator) print(estimator[-1].inertia_) result2={"fit-time":fit_time,"inertia:":estimator[-1].inertia_ } from sklearn.decomposition import PCA ### ??编程 选择保持 98%的信息的PCA模型,用名为pca的变量表示 ---------- pca = PCA(n_components=0.98) ###------------------------------------------------------------------- ###创建KMeas对象 kmeans=KMeans(n_clusters=10, random_state=42) ###??编程 创建一个 标准化+PCA降维+KMeas聚类的管道并训练,记录训练时间 t0 = time() estimator = make_pipeline(StandardScaler(), pca, kmeans).fit(data) ##增加pca预处理 fit_time = time() - t0 print("训练时间:", fit_time) ### 通过惯性(inertia)聚类的性能 print(estimator) print(estimator[-1].inertia_) result3={"fit-time":fit_time,"inertia:":estimator[-1].inertia_ }可以选择不同的KMeans的参数对digits进行聚类,比较实验结果,并选择一个针对此问题的最好模型

2023-05-25 上传