(9-)对象数据模型
什么是数据库模型数据库模型的简单介绍(二)2024

什么是数据库模型数据库模型的简单介绍(二)引言概述:数据库模型是用来表示数据库中数据之间关系的抽象概念。
在数据库设计和管理中,选择适当的数据库模型对于有效地组织和操作数据非常重要。
本文将继续探讨数据库模型的相关知识,并详细介绍数据库模型的不同类型和特点。
正文:1. 关系模型- 关系模型是最常用的数据库模型之一。
它使用表格(被称为关系)来组织数据,并通过主键和外键建立数据之间的关联。
关系模型中的每个关系都有属性,用于描述实体的特征。
关系模型具有高度的灵活性和查询效率。
- 关系模型的范式是用于规范化数据的重要概念。
范式通过规定关系中属性和关系之间的依赖关系,使得数据具备更高的一致性和完整性。
- 常见的关系数据库管理系统(RDBMS)如MySQL和Oracle都是基于关系模型构建的,使用结构化查询语言(SQL)进行数据操作。
2. 层次模型- 层次模型是一种以树形结构组织数据的数据库模型。
它使用父子关系来描述实体之间的层次关系,并通过指定路径来访问数据。
每个层次模型都有一个根节点,其下可以有多个子节点。
- 层次模型的优点是能够快速获取相关数据,但对于数据的修改和扩展相对不灵活。
在层次模型中,数据之间的关系通常是固定的,不易进行动态调整。
3. 网状模型- 网状模型是一种用于表示复杂数据关系的数据库模型。
它使用节点和弧线来描述数据之间的连接方式。
相比于关系模型和层次模型,网状模型允许更灵活的数据关系。
- 网状模型在处理复杂数据关系和多对多关联时具有优势。
然而,网状模型的复杂性和可维护性相对较低,需要更高的技术要求和开发成本。
4. 对象模型- 对象模型是一种将面向对象思想应用于数据库的数据库模型。
它将数据抽象为对象,并通过类和继承关系来描述对象之间的联系。
对象模型允许封装、继承和多态等面向对象特性。
- 对象模型相对于关系模型而言更加直观,更好地反映了现实世界中的实体和关系。
它能够满足对象导向程序设计的需要,但在实际应用中,需要考虑对象和关系之间的转换。
数据模型的名词解释

数据模型的名词解释数据模型在现代社会存在着越来越重要的地位,它也成为研究诸多决策制定、分析处理许多事物的重要依据。
在计算机技术发展至今,数据模型也日渐被普及到各种行业和企业当中,在提升效率、精确分析领域发挥着重要作用。
本文针对数据模型的概念,相关内容进行详细解读,总结出数据模型的定义、类型和用途等重要部分,以供读者更加深入的了解数据模型的实质及其应用价值。
一、数据模型的定义数据模型的定义是指:数据模型是描述各种数据概念、实体和关系以及它们之间的关系的抽象模型,它将信息储存成抽象关系,以便于进行更加有效的管理和处理。
也就是说,数据模型是一个通用化的系统,它可以把复杂的问题简化,以便于系统的分析和有效的处理。
二、数据模型的类型1、结构化数据模型结构化数据模型是一种以表格形式记录各类实体和关系的模型,通过建立实体与实体之法的多重关系,可以对各类实体属性进行统一的管理和控制。
它包括关系型数据模型、网状数据模型、层次数据模型等。
2、非结构化数据模型非结构化数据模型具有较强的弹性,可以用于存储不规则的、多元的数据,例如开放文本、图像和视频等。
常见的非结构化数据模型包括对象关系模型(Object-Relational Model)、网络模型(NetworkModel)和关联模型(Associative Model)等。
三、数据模型的用途1、储存实体和关系数据模型可以将各类数据项和实体以及它们之间的关系进行统一的存储,可以储存各类的记录、词语和文件等,以及它们之间的关系,使得数据的管理变得更加有效和便捷。
2、数据挖掘(Data Mining)数据模型可以通过它的结构将复杂的信息抽象成更加有效的形式,从而可以大大简化数据挖掘的任务,让数据挖掘更加准确、快速。
3、数据库设计数据模型可以帮助管理者更加有效精确的规划出一个完整的数据库系统,有利于对现实世界概念、实体及其关系的表达,使得数据的管理更加有效。
综上所述,数据模型是管理和处理复杂信息的抽象模型,是各种行业和企业中提高效率、精确分析所不可缺少的重要手段。
对象模型技术OMT

对象模型技术(OMT)
面向对象建模方法有很多种,也都在进一步的发展和完善中。
对象模型技术(OMT)是目前最为成熟和实用的方法之一。
它从三个方面对系统进行建模,每个模型从一个侧面反映系统的特性,三个模型分别是:对象模型、动态模型和功能模型。
对象模型表示静态的,结构化的"数据"性质,它是对模拟客观世界实体的对象及对象间的关系映射,描述了系统的静态及结构.通常用类图表示。
对象模型描述系统中对象的静态结构、对象之间的关系、对象的属性、对象的操作。
对象模型表示静态的、结构上的、系统的“数据”特征。
对象模型为动态模型和功能模型提供了基本的框架。
对象模型用包含对象和类的对象图来表示。
动态模型表示瞬间的,行为化的系统控制性质,他规定了对象模型中的对象合法化变化序列.通常用状态图表示.动态模型描述与时间和操作顺序有关的系统特征--激发事件、事件序列、确定事件先后关系的状态以及事件和状态的组织。
动态模型表示瞬间的、行为上的、系统的“控制”特征。
动态模型用状态图来表示,每张状态图显示了系统中一个类的所有对象所允许的状态和事件的顺序。
功能模型表示变化的系统的功能性质,它指明了系统应该做什么,因此直接地反映了用户对目标系统的需求,通常用数据流图表示.功能模型描述与值变换有关的系统特征--功能、映射、约束和函数依赖。
简述常用的数据模型及其特点

简述常用的数据模型及其特点常用的数据模型有层次模型、网络模型、关系模型、对象模型等。
每种数据模型都有其特点和应用场景。
1.层次模型:层次模型是最早出现的数据模型之一,它将数据组织为一个树状结构,其中每个节点可以有多个子节点,但只能有一个父节点。
数据通过层次关系进行组织,即可以通过父节点找到所有的子节点,但不能反向查找。
层次模型适用于具有明确层次关系的数据,例如组织结构和部门关系。
其特点包括:-数据组织结构清晰,易于理解和使用。
-查询效率高,对于只需要通过父节点查询所有子节点的场景适用。
-不灵活,对于多对多的关系实现困难。
2.网络模型:网络模型是对层次模型的扩展,它克服了层次模型中的一些限制。
网络模型通过使用连接(Link)和记录(Record)来表示数据之间的关系,其中记录可以通过多个连接访问。
网络模型适用于具有复杂关系、需要灵活查询的数据。
其特点包括:-具有动态结构,可以通过连接实现多对多的关系。
-提供了更多的查询路径,查询灵活性高。
-数据结构复杂,不易理解和维护。
-缺乏标准化,不同数据库系统实现方式存在差异。
3.关系模型:关系模型是目前最为广泛使用的数据模型,它将数据组织为二维表格的形式,其中每个表格表示一个关系,每行表示一个记录,每列表示一个属性。
关系模型适用于大多数应用场景,不论是小规模还是大规模数据。
其特点包括:-结构简单,易于理解和使用。
-易于扩展和修改,对于数据结构变化较频繁的场景适用。
-支持数据的一致性和完整性约束,提高数据的质量和可靠性。
-查询效率相对较低,对于复杂查询需要使用复杂的SQL语句。
4.对象模型:对象模型是面向对象的数据模型,将数据组织为对象的形式,其中每个对象具有属性和方法。
对象模型将关系模型和面向对象编程的思想结合起来,适用于复杂的业务场景和数据结构。
-更加贴近现实世界的模型,易于理解和使用。
-支持继承、封装和多态等面向对象特性。
-查询效率相对较低,对于复杂查询需要使用复杂的查询语言。
面向对象的数据建模方法介绍

面向对象的数据建模方法介绍面向对象的数据建模是一种在软件开发过程中广泛应用的方法,旨在通过将现实世界的事物抽象成对象,对事物之间的关系进行建模和描述。
本文将介绍面向对象的数据建模方法,包括实体关系模型(ERM)、统一建模语言(UML)和面向对象数据库。
一、实体关系模型(ERM)实体关系模型是一种常用的数据建模方法,用于表示现实世界中各个实体之间的关系。
在ERM中,实体用矩形框表示,属性用椭圆表示,关系用菱形表示。
通过定义实体、属性和关系之间的约束和限制,可以精确描述现实世界的结构和行为。
举例来说,假设我们要建立一个图书馆管理系统,可以使用ERM来描述图书、读者和借阅等实体之间的关系。
图书可以有属性如书名、作者和出版日期,读者可以有属性如姓名、年龄和性别,而借阅则将图书和读者关联起来,表示读者借阅了某本图书。
二、统一建模语言(UML)统一建模语言是一种广泛使用的面向对象建模语言,用于描述软件系统的结构和行为。
UML提供了一系列图表,包括类图、对象图、用例图和活动图等,可以方便地对系统进行建模和分析。
在UML中,类图是最常用的图表之一,用于表示系统中的类和类之间的关系。
每个类都有属性和方法,与ERM中的实体和属性类似。
通过类图可以清晰地展示系统的结构,帮助开发人员理解和设计软件系统。
三、面向对象数据库面向对象数据库是一种将面向对象思想应用于数据库管理系统的方法。
传统的关系型数据库以表格形式存储数据,而面向对象数据库则将数据存储为对象,更贴近面向对象的思维方式。
面向对象数据库支持复杂的数据结构和对象之间的继承关系,可以更方便地进行数据操作和查询。
使用面向对象数据库可以有效地解决关系型数据库中数据表之间的复杂关系和数据冗余的问题。
总结:面向对象的数据建模方法是一种有效的软件开发方法,可以帮助开发人员更好地理解和描述现实世界中的事物和关系。
通过实体关系模型、统一建模语言和面向对象数据库等方法,可以将复杂的现实世界映射为清晰的数据结构,并支持系统的设计和开发。
面向对象数据模型技术及其在软件开发中的应用

面向对象数据模型技术及其在软件开发中的应用在软件开发领域,面向对象编程(Object-Oriented Programming,简称OOP)已经成为一种主流的开发方法。
而面向对象数据模型技术作为OOP的基础,也在软件开发中起到了重要的作用。
本文将探讨面向对象数据模型技术及其在软件开发中的应用。
一、面向对象数据模型技术的概念和特点面向对象数据模型技术是一种将现实世界中的事物抽象为对象,并通过对象之间的关系来描述和处理问题的方法。
它的核心思想是将数据和操作数据的方法封装在一起,形成一个完整的对象。
面向对象数据模型技术的主要特点包括:1. 封装性:面向对象数据模型技术将数据和操作数据的方法封装在一起,对外部隐藏了内部的实现细节,使得对象的使用者只需要关注对象的接口而不需要了解其内部实现。
2. 继承性:面向对象数据模型技术通过继承机制实现了代码的复用,子类可以继承父类的属性和方法,并可以在此基础上进行扩展和修改。
这样可以大大提高代码的可维护性和可扩展性。
3. 多态性:面向对象数据模型技术通过多态机制实现了同一接口的不同实现方式,使得程序可以根据具体的对象类型来选择合适的方法进行调用。
这样可以提高代码的灵活性和可复用性。
二、面向对象数据模型技术在软件开发中的应用面向对象数据模型技术在软件开发中有着广泛的应用,下面将从几个方面介绍其具体应用。
1. 数据库设计:在关系型数据库中,面向对象数据模型技术可以通过对象-关系映射(Object-Relational Mapping,简称ORM)来实现。
ORM可以将数据库中的表映射为对象,将表中的字段映射为对象的属性,通过对象的方法来操作数据库。
这样可以简化数据库操作的代码,提高代码的可读性和可维护性。
2. 软件架构设计:面向对象数据模型技术可以用于设计软件的整体架构。
通过将系统中的各个功能模块抽象为对象,并通过对象之间的关系来描述模块之间的依赖关系,可以更好地组织和管理软件的各个模块,提高软件的可扩展性和可维护性。
对象模型的概念

对象模型的概念
对象模型指的是对现实世界中实体的抽象,通常用于计算机程序中。
对象模型通过描述对象的属性和行为来对其进行建模。
在面向对象的编程中,对象模型是非常重要的,它可以帮助程序员更好地理解问题,并且在实现功能时提供了便利。
对象模型通常由类和对象组成,类是对一组对象的描述,对象则是类的一个实例。
类包含了对象所具有的属性和方法,属性指对象的特征,方法则是对象可以执行的操作。
通过定义类和对象,程序员可以方便地操作对象,实现程序的功能。
对象模型还可以通过继承和多态来增加灵活性。
继承允许一个类从另一个类继承属性和方法,可以降低代码的重复性,简化程序的设计。
多态则允许不同的对象对同一个方法有不同的实现,可以提高程序的可扩展性和可维护性。
总之,对象模型是面向对象编程的核心概念之一,理解对象模型可以帮助程序员更好地设计和实现程序,提高程序的质量和效率。
- 1 -。
数据模型的名词解释

数据模型的名词解释【引言】数据模型是计算机科学中的一个重要概念,指的是用来描绘和描述现实世界中的数据和数据之间关系的一种抽象方式。
通过数据模型,人们可以更好地理解和组织数据,从而为数据库设计、软件开发以及数据分析等领域提供基础。
本文将解释一些与数据模型相关的名词,帮助读者更好地理解数据模型的概念与应用。
一、实体(Entity)在数据模型中,实体是指具有相同特性和行为的事物、对象或概念。
例如,一个学生、一本书、一辆汽车都可以是实体。
实体通常具有一些属性,用于描述和区分不同的实体。
例如,学生实体的属性可以包括学号、姓名、性别等。
二、属性(Attribute)属性是描述实体特征的细分项,它定义了实体的某个方面。
例如,学生实体的属性可以包括学号、姓名、性别、年龄等。
属性可以用来存储和获取实体的特征信息。
三、关系(Relationship)关系用于描述实体之间的联系和关联。
在数据模型中,关系可以是一对一、一对多或多对多的。
例如,学生和课程之间的关系可以是一对多的关系,一个学生可以选择多门课程,而一门课程也可以有多个学生选修。
四、主键(Primary Key)主键是用来唯一标识实体的属性或属性组合。
在数据库中,主键的值必须唯一,并且不能为空。
通过主键,我们可以快速找到和定位对应的实体。
例如,学生实体的主键可以使用学生的学号来标识。
五、外键(Foreign Key)外键是一个表中的字段,它引用了另外一个表中的主键。
通过外键,我们可以建立不同表之间的关联关系,实现数据的一致性和完整性。
例如,学生表中的班级字段可以作为外键,引用班级表中的班级编号,实现学生表和班级表的关联。
六、范式(Normalization)范式是用来规范数据库设计的一组原则。
通过范式化设计,可以减少数据冗余和数据插入、更新、删除的异常情况。
常见的范式包括第一范式(确保实体属性的原子性)、第二范式(确保实体的属性完全依赖于主键)、第三范式(确保实体之间的传递依赖)等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
①对象与封装性
在面向对象的系统中,每个概念实体都可以模型化为
对象。一个对象是由描述该对象状态的一组数据和表达 它的行为的一组操作(方法)组成的。例如,河流的坐标数
据描述了它的位置和形状,而河流的变迁则表达了它的 行为。可见,对象是数据和行为的统一体。 一个对象可定义成一个三元组: Object=(ID,S,M) 其中,ID为对象标识, M为方法集, S为对象的内部状 态,它可以直接是一属性值,也可以是另外一组对象的 集合,因而它明显地表现出对象的递归。
④ 继承 建立超类实际上是一种概括,避免了说明 和存储上的大量冗余。由于超类和子类的分开 表示,所以就需要一种机制,在获取子类对象 的状态和操作时,能自动得到它的超类的状态 和操作。这就是面向对象方法中的模型工具— —继承,它提供了对世界简明而精确的描述, 以利于共享说明和应用的实现。
⑤聚集
聚集是将几个不同特征的对象组合成一个更高水平的复合对 象。每个不同特征的对象是该复合对象的一部分,它们有自己
• 第3节 空间数据库逻辑模型设计
(一)关系数据模型基本概念 (二) 依赖 数据依赖 函数依赖
基本依赖 完全函数依赖 传递函数依赖 多值依赖
(三) 范式 1NF 2NF 3NF BCNF
关系数据库的规范化理论
(1) 第一范式(1NF)
定义:如果一个关系模式R的所有属性都是不可
分的基本数据项,则R属于1NF。
第一范式是对关系模式的最起码的要求。不满
足第一范式的数据库模式不能称为关系数据库。
以下“工资”表具有组合数据项,不属于第一范式。 职工编号 001 002 003 …… 姓名 赵军 刘娜 李东 …… 工资 基本工资 职务工资 工龄工资 2000 500 500 1800 400 300 2300 700 800 …… …… ……
二 面向对象数据模型
面向对象(object-oriented,oo)的概 念起源于程序设计语言——面向对象的编 程语言(简称OOPL),强调对象概念的统—, 引入对象、对象类、方法、实例等概念和 术语,采用动态联编和单继承性机制。它 以OOPL为核心,集各种软件开发工具为 一体,建立OO计算环境,配有很强的图 形功能和多窗口用户界面。 基本出发点就是以对象作为最基本的 元素,尽可能按照人类认识世界的方法和 思维方式来分析和解决问题。
⑴、面向对象方法中的基本概念
对象:是对客观世界实体的抽象描
述,由信息(数据)和对数据的操 作组合而成。 类:是对多个相似对象共同特性的 描述。 消息:是对象之间通信的手段,用 来指示对象的操作。分公有消息和 私有消息。
方法:是对象接收到消息后应采取
的动作序列的描述。 实例:是由一特定类描述的具体对 象。 元类:是相似的类的共同属性的抽 象,元类的实例是类,类的实例是 对象。
GIS中的各种地物,在几何性质方面不外乎表 现为四种类型,即点状地物、线状处物、面 状地物以及由它们混合组成的复杂地物,因 而这四种类型可以作为GIS中各种地物类型的 超类。
空间地物
点状地物
线状地物
面状地物
复杂地物
电 视 塔
桥 梁
车 站
道 路
水 管
电 力 线
建 筑 物
公 湖 园
矿 山
大 县 学
⑵ 面向对象数据模型的优点
封装的最基本单位是对象。封装技术提高了面向对象
方法开发软件的可重用性,从而大大提高了复杂软件的 开发效率、质量和可靠性,更加易于维护。
②分类
类是关于同类对象的集合,具有相同属性和操作的对象 组合在一起称为类。属于同一类的所有对象共享相同的属
性项和操作方法,每个对象都是这个类的一个实例,即每 个对象可能有不同的属性值。 可以用一个三元组来建立一个类型: Class=(CID,CS,CM)
一个类可能是某个或某几个超类的子类,同时又可能 是几个子几种类型中某些具有公 共特征的属性和操作抽象出来,形成一种更一般 的超类。设有两种类型: class1=(CID1,CSA,CSB,CMA,CMB) class2=(CID2,CSA,CSC,CMA,CMc) 可形成一种超类: Superclass(CID,CSA,CMA) 其中SID为超类的标识号, 此时 class1=(CID1,CSB,CMB) class2=(CID2,CSC,CMC) class1 和 class2 称 为 Superclass 的 子 类 (Subclass)。 一个类可能是某个或某几个超类的子类,同 时又可能是几个子类的超类。
主码: SID 存在函数依赖: SID→Building Building→Fee
即存在非主属性Fee对码SID的传递函数依赖,因此关
系Housing不是第三范式。
SID 10 11 12 13 14 15 Tom Jerry Kate Tony John Mary Sname Building A A B B C D Fee 1100 1100 1200 1200 1300 1400
该关系存在插入异常、删除异常等问题。例如, 如果SID为15的学生退学了,则不仅删除了该学生
的信息,同时删除了D楼的收费信息,出现了删除
异常。如果新建了一个大楼,还没有学生入住,则 该新楼的信息也无法插入到表中,也就是出现了插 入异常。同样,如果有400名学生住在同一个楼里, 则该楼的信息就要重复400次,因此也存在数据冗
(1)具有表示和构造复杂对象的能力。
(2)封装性和信息隐蔽技术提供了模块化
机制。 (3)继承和类层次技术提供了重用机制。
小结:
关系数据模型和关系数据库管理系统基
本上适应于 GIS中属性数据的表达与管理。若
采用面向对象数据模型,语义将更加丰富, 层次关系也更明了。可以说,面向对象数据 模型是在包含关系数据库管理系统的功能基 础上,增加面向对象数据模型的封装、继承 和信息传播等功能。
其中, CID为类标识或类型名,CS为状态描述部分,CM为应用于 该类的操作。显然有:S∈CS和 M∈CM (当Object∈Class时)
在实际的系统中,仅需对每个类型定义一组操作,供该 类中的每个对象应用。由于每个对象的内部状态不完全相 同,所以要分别存储每个对象的属性值。
③概括 在定义类型时,将几种类型中某些具有公共特征的 属性和操作抽象出来,形成一种更一般的超类。例如, 将 GIS中的地物抽象为点状对象、线状对象、面状对 象以及由这三种对象组成的复杂对象,因而这四种类 型可以作为GIS中各种地物类型的超类。 例如,建筑物是饭店的超类,因为饭店也是建筑 物。子类还可以进一步分类,如饭店类可以进一步分 为小餐馆、普通旅社、宾馆、招待所等类型。所以,
D
1400
分解后的关系解决了插入异常、删除异常、 数据冗余的问题
关系变得更加复杂,对关系的使用也会变 得复杂,因此并不是分解得越细越好。一 般来说,用户的目标是第三范式(3NF) 数据库,因为在大多数情况下,这是进行 规范化功能与易用程度的最好平衡点。在 理论上和一些实际使用的数据库中,有比 3NF更高的等级。
例如,对于学生关系: 学生(学号,姓名,性别,课程号,课程名称,成绩) 码:(学号,课程号) 因此: 学号、课程号是主属性,性别、课程名称、成 绩是非主属性。 存在部分函数依赖: 学号→姓名 学号→性别 课程号→课程名称 存在非主属性对码的部分函数依赖,因此不是2NF
改进方法: 对该关系进行分解,生成若干关系,以消除部分 函数依赖。分解为以下三个关系: 学生基本信息(学号,姓名,性别) 课程(课程号,课程名称)
选修(学号,课程号,成绩)
可以看出,在这三个关系中不存在部分函数依赖, 因此问题得到了解决。 实际上,这里就是把描述不同主题的内容分别用 不同的关系来表示。
(3) 第三范式(3NF) 定义:如果关系模式R是第二范式,且每个非
主属性都非传递函数依赖于主码,则R属于3NF。
也可以说,如果关系R的每一个非主属性既不部分
余问题。
改进方法:将关系Housing分解为两个关系。
“Stu-Housing”关系:
SID 10 11 12 13 14 15 Sname Tom Jerry Kate Tony John Mary Building A A B B C D
“Housing-Fee”关系: Building A B C Fee 1100 1200 1300
将“工资”表规范化为第一范式: 职工编号 001 002 003 …… 姓名 基本工资 职务工资 工龄工资 赵军 2000 500 500 刘娜 1800 400 300 李东 2300 700 800 …… …… …… ……
满足第一范式的关系模式不一定就是一个好的关系 模式。
(2) 第二范式(2NF) 定义:若关系模式R是1NF,并且每一个非主属性都完 全函数依赖于R的码,则R属于2NF。
§4 空间数据库物理设计
略
§5 空间数据查询
了解空间数据有那些查询类型
§6 空间数据索引
三、范围索引
利用最小外接矩形 需要对整个数据库进行检索
四、四叉树索引
记录层次和morton码 边界上地物需要特殊处理
函数依赖于主码,也不传递函数依赖于主码,则R
属于3NF。
例如,关系Housing是学生住宿收费表,SID为学生 编号,Sname为学生姓名,Building为楼的编号, Fee为每季度需支付的费用。假设一个学生只住在 一个大楼里,一个大楼只有一种收费标准。
SID 10 11 12 13 14 15 Sname Tom Jerry Kate Tony John Mary Building A A B B C D Fee 1100 1100 1200 1200 1300 1400
的属性描述数据和操作,这些是不能为复合对象所公用的.例如,
弧段聚集成线状地物或面状地物,简单地物组成复杂地物。 在聚集这两种对象中,是用“传播”作为传递子对象的属性