First, set the property to be Bindable:
[Bindable(event="myDataChanged")]
private function get myData():ArrayCollection{
...
}
Since you do not have a 'set' method defined. As such, whenever the 'myData' changes you will have to manually dispatch the myDataChanged event in order for Bindable to have an affect.
I suspect that you will also have to make myData() a public property; otherwise how will the classes that make binding work be able to introspect into your custom component in order to access the property.
Overall, it looks like you are choosing a very bad implementation approach. Is it is unusual to use a get method to make a database call and process the results. It much more common to encapsulate such code out of your view; and pass the result data into the view. There are many different ways to do this. You could do it with a singleton approach, or a dependency injection framework, or dispatching events from a service class with the result data.